使用hibernate的级联操作


在使用Hibernate时,加入级联操作可以大大减少数据库代码的编程码量,如果使用得当对数据库效能的提高有不少的帮助。
先讲讲怎样进行级联操作。
1、有两张表Tuser和Tuserinfo
其中Tuserinfo中userid主键关联Tuser。
TUser.hbm.xml
<hibernate-mapping>
<class
name="org.hibernate.sample.TUser"
table="t_user"
dynamic-update="true"
dynamic-insert="true"
>……
<set
name="addresses"
table="t_address"
inverse="true"//方向控制
cascade="all"//进行所有的级联操作包括增加、删除、修改
>
<key
column="user_id"
>
</key>
<one-to-many
class="org.hibernate.sample.TAddress"
/>
</set>
</class>
</hibernate-mapping>
>
TAddress.hbm.xml
<hibernate-mapping>
<class
name="org.hibernate.sample.TAddress"
table="t_address"
dynamic-update="false"
dynamic-insert="false"
>……
<many-to-one
name="user"
class="org.hibernate.sample.TUser"
cascade="none"
column="user_id"
/>
</class>
</hibernate-mapping>
Tuser.java
public class TUser implements Serializable {
……
private Set addresses = new HashSet();
public Set getAddresses() {
return addresses;
}
……
TAddress.java
public class TAddress implements Serializable {
……
private TUser user;
……

public TUser getUser() {
return this.user;
}
……
}

2、向user中插入一个地址

TAddress addr = new TAddress();
addr.setTel("1123");
addr.setZipcode("233123");
addr.setAddress("Hongkong");
addr.setUser(user);//设置关联的TUser对象
user.getAddresses().add(addr);
session.save(user);//级联更新

3、当删除user时,也同时删除了相关的address

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值