//$Id$ package org.hibernate.test.annotations.manytomany; import java.io.Serializable; import java.util.Collection; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.OrderBy; import javax.persistence.Table; import org.hibernate.annotations.Cascade; /** * Employer in a employer-Employee relationship * * @author Emmanuel Bernard */ @Entity() @Table(name="`Employer`") @SuppressWarnings({"serial", "unchecked"}) public class Employer implements Serializable { private Integer id; private Collection employees; private List contractors; @ManyToMany( targetEntity = org.hibernate.test.annotations.manytomany.Contractor.class, cascade = {CascadeType.PERSIST, CascadeType.MERGE} ) @JoinTable( name = "EMPLOYER_CONTRACTOR", joinColumns = {@JoinColumn(name = "EMPLOYER_ID")}, inverseJoinColumns = {@JoinColumn(name = "CONTRACTOR_ID")} ) @Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE) @OrderBy("name desc") public List getContractors() { return contractors; } public void setContractors(List contractors) { this.contractors = contractors; } @ManyToMany( targetEntity = org.hibernate.test.annotations.manytomany.Employee.class, cascade = {CascadeType.PERSIST, CascadeType.MERGE} ) @JoinTable( name = "EMPLOYER_EMPLOYEE", joinColumns = {@JoinColumn(name = "EMPER_ID")}, inverseJoinColumns = {@JoinColumn(name = "EMPEE_ID")} ) @Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE) @OrderBy("name asc") public Collection getEmployees() { return employees; } @Id @GeneratedValue public Integer getId() { return id; } public void setEmployees(Collection set) { employees = set; } public void setId(Integer integer) { id = integer; } }