您的位置:首页 > 其它

hibernate关系映射--双向多对多@ManyToMany

2015-08-23 15:40 337 查看
1.双向多对多也只能采用连接表的形式建立两个实体的关联关系

2.双向多对多关系两段都需要使用@ManyToMany,@JoinTable。如果希望某一端放弃控制关联关系,则要用mappedBy属性,然后就不能使用@JoinTable映射连接表了

3.例子:

<span style="font-family:Microsoft YaHei;">//表一
@Entity
@Table(name = "T_JC_test1")
@Where(clause="recordStatus='"+GlobalConstant.FLAG_Y+"'")
public class Test1 extends BusinessEntity{
private static final long serialVersionUID = 2535128385272676564L;
private String name;
private List<Test2> test2 = new ArrayList<Test2>();

@ManyToMany(cascade={CascadeType.ALL})
@JoinTable(name="T_JC_test1_tese2",joinColumns=@JoinColumn(name="test1ID"),inverseJoinColumns=@JoinColumn(name="test2ID"))
public List<Test2> getTest2() {
return test2;
}
public void setTest2(List<Test2> test2) {
this.test2 = test2;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

//表二
@Entity
@Table(name = "T_JC_test2")
@Where(clause="recordStatus='"+GlobalConstant.FLAG_Y+"'")
public class Test2 extends BusinessEntity{
private static final long serialVersionUID = -7653945367481001205L;
private String addressDetatil;
private List<Test1> test1 = new ArrayList<Test1>();

@ManyToMany
@JoinTable(name="T_JC_test1_tese2",joinColumns=@JoinColumn(name="test2ID"),inverseJoinColumns=@JoinColumn(name="test1ID"))
public List<Test1> getTest1() {
return test1;
}
public void setTest1(List<Test1> test1) {
this.test1 = test1;
}
public String getAddressDetatil() {
return addressDetatil;
}
public void setAddressDetatil(String addressDetatil) {
this.addressDetatil = addressDetatil;
}
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: