//$Id$ package org.hibernate.test.annotations.manytomany; import java.io.Serializable; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; /** * Man knowing sevezral womens * * @author Emmanuel Bernard */ @Entity public class Man implements Serializable { private ManPk id; private String carName; private Set<Woman> womens; @ManyToMany(cascade = {CascadeType.ALL}, mappedBy = "mens") public Set<Woman> getWomens() { return womens; } public void setWomens(Set<Woman> womens) { this.womens = womens; } @Id public ManPk getId() { return id; } public void setId(ManPk id) { this.id = id; } public String getCarName() { return carName; } public void setCarName(String carName) { this.carName = carName; } public int hashCode() { //a NPE can occurs, but I don't expect hashcode to be used before pk is set return getId().hashCode(); } public boolean equals(Object obj) { //a NPE can occurs, but I don't expect equals to be used before pk is set if ( obj != null && obj instanceof Man ) { return getId().equals( ( (Man) obj ).getId() ); } else { return false; } } }