package org.skyscreamer.yoga.demo.model; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.skyscreamer.yoga.annotations.Core; import org.skyscreamer.yoga.annotations.URITemplate; import javax.persistence.*; import java.util.HashSet; import java.util.Set; /** * Created by IntelliJ IDEA. User: Carter Page Date: 4/11/11 Time: 4:47 PM */ @Entity @URITemplate("/user/{id}") @Cache(usage = CacheConcurrencyStrategy.READ_ONLY) public class User { @Id @GeneratedValue private long id; private String name; @ManyToMany @JoinTable(name = "friend", joinColumns = @JoinColumn(name = "userid"), inverseJoinColumns = @JoinColumn(name = "friendid")) @Cache(usage = CacheConcurrencyStrategy.READ_ONLY) private Set<User> friends = new HashSet<User>(); @ManyToMany @JoinTable(name = "fan", joinColumns = @JoinColumn(name = "userid"), inverseJoinColumns = @JoinColumn(name = "artistid")) @Cache(usage = CacheConcurrencyStrategy.READ_ONLY) private Set<Artist> favoriteArtists = new HashSet<Artist>(); public boolean getIsFriend() { // To be implemented return true; } public void setIsFriend( boolean isFriend ) { // to be implemented } @Core public long getId() { return id; } public void setId( long id ) { this.id = id; } @Core public String getName() { return name; } public void setName( String name ) { this.name = name; } public Set<User> getFriends() { return friends; } public void setFriends( Set<User> friends ) { this.friends = friends; } public Set<Artist> getFavoriteArtists() { return favoriteArtists; } public void setFavoriteArtists( Set<Artist> favoriteArtists ) { this.favoriteArtists = favoriteArtists; } }