Hibernate中的inverse属性和cascade属性
来源:互联网 发布:网络大电影靠什么赚钱 编辑:程序博客网 时间:2024/05/17 06:25
假设Customer和Orders 建立一对多的双向关联.
inverse 属性:
//加载持久化对象
Customer customer = (Customer) session.load(Customer.class, new Integer(2));
Orders order = (Orders) session.load(Orders.class,new Integer(2));
//建立关联
order.setCustomer(customer);
customer.getOrders().add(order);
因为Hiberante 自动清理缓存中的持久化对象,按持久化状态的改变来同步更新数据库.所以尽管上面的代码只修改了
orders表中的一条记录但 还是会执行两条update 语句 ,因为内存中的持久化对象的状态发生了两次改变.
而这种多余的sql语句会影响性能.解决这种问题的办法是 把 inverse属性的值设置为 true .
总结:
影射一对多的双向关联时,因该把 one 方的inverse属性值设置为 true .
建立两个对象的双向关联时应该同时修改关联两端的属性.
cascade 属性:
当属性值为
save-update : (级联保存) 时,表明保存或更新当前对象时会级联保存或更新他所关联的对象.
delete :(级联删除) 级联删除所关联的对象.
all-delete-orphan : 自动删除不再和 父对象关联的子对象.并且 在出现上面两种情况时执行上面两种的功能.
可以说是一个全自动的属性值.
一般情况下,当关联双方存在父子关系.就可以把父方的cascade 属性值设置为all-delete-orphan.
父子关系: 由父方来控制子方的生命周期.子对象必须和一个父对象关联.子对象不可孤立存在.
- Hibernate中的inverse属性和cascade属性
- Hibernate中的inverse属性和cascade属性
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的cascade和inverse属性
- Hibernate中的inverse和cascade属性
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的inverse和cascade属性
- Hibernate中的Inverse和cascade属性配置
- Hibernate中的inverse和cascade属性
- hibernate中的inverse和cascade属性
- Hibernate中的inverse和cascade属性
- Hibernate(Inverse和Cascade属性)
- php常用函数
- 一步一步学DataGuard(3)物理standby之创建步骤(1)
- 又见fq
- JavaScript仿Windows关机效果
- 选择排序的效率
- Hibernate中的inverse属性和cascade属性
- 一个较优雅的GridView隐藏列取值解决方案
- Ini文件操作
- Ini文件操作
- U-boot-1.1.6-2008R1到vdsp5(bf561)的移植记录(13):使用L1
- Ini文件操作
- Ini文件操作
- 一步一步学DataGuard(4)物理standby之创建步骤(2)
- Lesson one hundred thirty three Sensational news.