//$Id$ package org.hibernate.test.annotations.manytomany; import java.io.Serializable; import java.util.Collection; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.ManyToMany; import org.hibernate.annotations.Cascade; /** * Employee in an Employer-Employee relationship * * @author Emmanuel Bernard */ @Entity @Inheritance(strategy = InheritanceType.JOINED) @SuppressWarnings("serial") public class Employee implements Serializable { private Integer id; private Collection<Employer> employers; private String name; ContactInfo contactInfo; JobInfo jobInfo; // ContactInfo is for ManyToMany testing @Embedded public ContactInfo getContactInfo() { return contactInfo; } public void setContactInfo(ContactInfo contactInfo) { this.contactInfo = contactInfo; } // JobInfo is for OneToMany testing @Embedded public JobInfo getJobInfo() { return jobInfo; } public void setJobInfo(JobInfo jobInfo) { this.jobInfo = jobInfo; } @Column(name="fld_name") public String getName() { return name; } public void setName(String name) { this.name = name; } @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer integer) { id = integer; } @ManyToMany( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "employees" ) @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.PERSIST}) public Collection<Employer> getEmployers() { return employers; } public void setEmployers(Collection<Employer> employers) { this.employers = employers; } }