hibernate的级联----cascade

1.cascade=”none”,默认值,告诉Hibernate忽略关系。
2.cascade=”save-update”告诉Hibernate在下面这些情况导航关联:当事务提交时,当对象传给save()或update()方法并保存新初始化的瞬时实例及把更改持久到分离实例时。
3. cascade=”delete”告诉Hibernate当对象传给delete()时导航关联并删除持久实例。
4.cascade=”all”意思是save-update和delete都级联,就像调用evict和lock。
5.cascade=”all-delete-orphan”,跟cascade=”all”一样,但是除此之外,Hibernate 删除任何已经从关联(例如,从集合)删除(不再被引用)的持久实体实例。
6.cascade=”delete-orphan”,Hibernate 将会删除任何已经从关联(例如,从集合)删除(不再被引用)的持久实体实例。

Session session = sessions.openSession();
Transaction tx = session.beginTransaction();
Category computer = (Category) session.get(Category.class, computerId);
Category laptops = new Category("Laptops");
computer.getChildCategories().add(laptops);
laptops.setParentCategory(computer);
tx.commit();
session.close();
级联时为save-updatecomputer 实例是持久的(绑定到session),childCategory关联已经打开了级联保存。因此,这段代码导致调用tx.commit()时新的laptops目录成为持久的,因为Hibernate级联脏数据检查到computer 的儿子。Hibernate执行INSERT 语句

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值