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.List;
/**
* Created by IntelliJ IDEA. User: Carter Page Date: 4/11/11 Time: 4:53 PM
*/
@Entity
@URITemplate("/album/{id}")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class Album
{
@Id
@GeneratedValue
private long id;
private String title;
private int year;
@ManyToOne
@JoinColumn(name = "artistId")
private Artist artist;
@OneToMany(mappedBy = "album")
@OrderBy("id")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
private List<Song> songs = new ArrayList<Song>();
@Core
public long getId()
{
return id;
}
public void setId( long id )
{
this.id = id;
}
@Core
public String getTitle()
{
return title;
}
public void setTitle( String title )
{
this.title = title;
}
public Artist getArtist()
{
return artist;
}
public void setArtist( Artist artist )
{
this.artist = artist;
}
@Core
public int getYear()
{
return year;
}
public void setYear( int year )
{
this.year = year;
}
public List<Song> getSongs()
{
return songs;
}
public void setSongs( List<Song> songs )
{
this.songs = songs;
}
}