首页 / 软件开发 / JAVA / 使用Hibernate Annotations维护多对多关系的心得
使用Hibernate Annotations维护多对多关系的心得2011-08-11说明在HibernateAnnotations中通过@ManyToMany注解可定义多对多关联。同时,也需要通过注解@JoinTable描述关联表和关联条件。对于双向关联,其中一端必须定义为owner,另一端必须定义为inverse(在对关联表进行更性操作时这一端将被忽略)。被关联端不必也不能描述物理映射,只需要一个简单的mappedBy参数,该参数包含了主体端的属性名,这样就绑定了双方的关系。如何制作PO1)找到CUBE--需要引入哪些类:import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;2)找到汽车人--主体端:/** *//**
* Theater
* @author allen
*/
@SuppressWarnings("serial")
@Entity
@Table(name = "THEATER")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Theater implements Serializable {
@ManyToMany(
targetEntity=net.allen.domain.Audience.class,
cascade ={CascadeType.PERSIST,CascadeType.MERGE},
fetch=FetchType.LAZY
)
@JoinTable(
name="THEATER_AUDIENCE",
joinColumns={@JoinColumn(name="THEATER_ID")},
inverseJoinColumns={@JoinColumn(name="AUDIENCE_ID")}
)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private List<Audience> audiences = new ArrayList<Audience>();
/** *//**
* @return Returns the audiences.
*/
public List<Audience> getAudiences() {
return audiences;
}
/** *//**
* @param audiences The audiences to set.
*/
public void setAudiences(List<Audience> audiences) {
this.audiences = audiences;
}
}