写道
假设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.
父子关系: 由父方来控制子方的生命周期.子对象必须和一个父对象关联.子对象不可孤立存在
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caoyinghui1986/archive/2008/04/14/2291085.aspx
分享到:
相关推荐
Hibernate中Inverse和Cascade的区别.html
Hibernate中cascade与inverse属性详解
hibernate inverse和cascade的详细讲解,相当详细全面的对inverse和cascade区别和用法的讲解
Hibernate中Cascade和inverse的区别,讲解的很详细
hibernate集合映射inverse和cascade详解.txt
于Hibernate中 cascade 与 inverse 的理解。 您买的Hibernate书是哪一本呢? 孙卫琴的精通Hibernate,还是 深入浅出Hibernate还是那本。。。 我是两本都买了,总体来说还可以,但是,有的地方讲的比较书面化,比如...
Hibernate中cascade和inverse应用
hibernate 级联(cascade和inverse)一对多,Jar包,数据库建表语句都好了,只要修改一下,数据库配置文件,就可以使用了,使用junit进行测试。
inverse Hibernate_级联关系说明_-_关于cascade和inverse的用法
hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式
Hibernate中cascade和inverse的相关
Hibernate fetch lazy cascade inverse 关键字
该源程序代码可以帮助初学者迅速建立hibernate的关联映射的概念,且详细的讲解了cascade和inverse的用法,程序代码进行了详尽的描述,通俗易懂,容易上手
本章介绍一对多关联关系的映射方法,重点介绍inverse属性和cascade属性的用法。本章还将介绍通过Hibernate API来保存、修改和删除具有关联关系的对象的方法。 7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-...
<set name="products" table="products" cascade="all" inverse="true"> <!-- Hibernate只会缓存对象的简单属性的值, 要缓存集合属性,必须在集合元素中也加入子元素 而Hibernate仅仅是把与当前持久对象关联的...
本章介绍一对多关联关系的映射方法,重点介绍inverse属性和cascade属性的用法。本章还将介绍通过Hibernate API来保存、修改和删除具有关联关系的对象的方法。 7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-...
整个层次结构中的所有父类和子类属性都映射到同一个表中,他们的实例通过一个辨别符列(discriminator)来区分。 Plane 是父类。@DiscriminatorColumn 注解定义了辨别符列。对于继承层次结构中的每个类, @...
持久化类的对象,在hibernate应用中可以处于三种状态(根据对象和session之间的关系进行划分): 1. 临时态,瞬态:特点: a) 在数据库中没有记录和它对应 b) 和session没有任何关系 c) New 出来的对象,都处于临时...
使用cascade和inverse优化区和街道关联关系 实现区和街道双向一对多关联关系