//$Id$
package org.hibernate.test.annotations.onetomany;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import org.hibernate.annotations.ForeignKey;
/**
* Unidirectional one to many sample
*
* @author Emmanuel Bernard
*/
@Entity()
public class Trainer {
private Integer id;
private String name;
private Set<Tiger> trainedTigers;
private Set<Monkey> trainedMonkeys;
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany
public Set<Tiger> getTrainedTigers() {
return trainedTigers;
}
public void setTrainedTigers(Set<Tiger> trainedTigers) {
this.trainedTigers = trainedTigers;
}
@OneToMany
@JoinTable(
name = "TrainedMonkeys",
//columns are optional, here we explicit them
joinColumns = @JoinColumn(name = "trainer_id"),
inverseJoinColumns = @JoinColumn(name = "monkey_id")
)
@ForeignKey(name = "TM_TRA_FK", inverseName = "TM_MON_FK")
public Set<Monkey> getTrainedMonkeys() {
return trainedMonkeys;
}
public void setTrainedMonkeys(Set<Monkey> trainedMonkeys) {
this.trainedMonkeys = trainedMonkeys;
}
}