您的位置:首页 > 其它

HIbernate关系映射--单向多对一@ManyToOne

2015-08-23 13:35 393 查看
1.无连接表的单向多对一

单向多对一只需从多的一端访问一的一端即可
比如:多个人对应一个地址
单向多对一需要在多的一端添加对一的一端的引用,并添加注解@ManyToOne(cascade={CascadeType.ALL}) @JoinColumn(name="")
主要代码及例子

@ManyToOne(cascade={CascadeType.ALL}) @JoinColumn(name="")

<span style="font-family:Microsoft YaHei;font-size:14px;">//表一,学生表
@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;<span style="white-space:pre">	</span>//姓名
private Test2 address;<span style="white-space:pre">	</span>//地址(引用表二)

@ManyToOne(cascade={CascadeType.ALL})<span style="white-space:pre">	</span>//</span><span style="font-family:Microsoft YaHei;font-size:14px;">cascade={CascadeType.ALL}级联保存相关的表</span><span style="font-family:Microsoft YaHei;font-size:14px;">
@JoinColumn(name="test1ID")
public Test2 getAddress() {
return address;
}
public void setAddress(Test2 address) {
this.address = address;
}
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;<span style="white-space:pre">	</span>//详细地址
public String getAddressDetatil() {
return addressDetatil;
}
public void setAddressDetatil(String addressDetatil) {
this.addressDetatil = addressDetatil;
}
}</span>
2.有链接表的单向多对一

只需在多的一方添加注解@ManyToOne(cascade=CascadeType.ALL) @JoinTable(name="T_JC_test1_test2",joinColumns=@JoinColumn(name="test1ID"),inverseJoinColumns=@JoinColumn(name="test2ID"))
例子如下

<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;<span style="white-space:pre">	</span>//姓名
private Test2 address;<span style="white-space:pre">	</span>//地址(引用地址表)

@ManyToOne(cascade={CascadeType.ALL})
@JoinTable(name="T_JC_test1_test2",joinColumns=@JoinColumn(name="test1ID"),inverseJoinColumns=@JoinColumn(name="test2ID"))
public Test2 getAddress() {
return address;
}
public void setAddress(Test2 address) {
this.address = address;
}
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;<span style="white-space:pre">		</span>//地址详细信息
public String getAddressDetatil() {
return addressDetatil;
}
public void setAddressDetatil(String addressDetatil) {
this.addressDetatil = addressDetatil;
}
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: