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.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Created by IntelliJ IDEA. User: Carter Page Date: 4/11/11 Time: 4:49 PM
*/
@Entity
@URITemplate("/artist/{id}")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class Artist
{
@Id
@GeneratedValue
private long id;
private String name;
@OneToMany(mappedBy = "artist")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
private List<Album> albums = new ArrayList<Album>();
@ManyToMany(mappedBy = "favoriteArtists")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
private Set<User> fans = new HashSet<User>();
@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 List<Album> getAlbums()
{
return albums;
}
public void setAlbums( List<Album> albums )
{
this.albums = albums;
}
public Set<User> getFans()
{
return fans;
}
public void setFans( Set<User> fans )
{
this.fans = fans;
}
}