`
kuyuyingzi
  • 浏览: 53538 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

cascade和inverse属性

 
阅读更多
cascade属性
none:当session操纵当前对象时,忽略其他关联的对象。它是cascade属性的默认值
save-update:当通过Session的save()、update()及saveOrUpdate()方法来保存或
更新当前对象时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游离对象
级联保存和更新
当hibernate持久化一个临时对象时,在默认情况下,他不会自动持久化所关联的其他临时对象,
会抛出TransientObjectException.如果设定set元素的cascade属性为save-update的话,
可实现自动持久化所关联的对象。


inverse属性
inverse=false 的为主动方(维护方),inverse=true 的为被动方, 由主动方负责维护关联关系
默认inverse=true,父子两边都维护父子关系
Inverse设值原则
   在 1-n 关系中,将 n 方设为主控方将有助于性能改善
在 1-N 关系中,若将 1 方设为主控方 会额外多出 update 语句


Inverse结论
1.在映射一对多的双向关联关系时,应该在one方把inverse属性设为true,这可以提高性能。
2.在建立两个对象的关联时,应该同时修改关联两端的相应属性:
*customer.getOrders().add(order);
*order.setCustomer(customer);
这样才会使程序更加健壮,提高业务逻辑层的独立性,使业务逻辑层的程序代码
不受Hibernate实现类的影响。
3、同理,当删除双向关联的关系时,也应该修改
关联两端的对象的相应属性:
Customer.getOrders().remove(order);
Order.setCustomer(null);
分享到:
评论

相关推荐

    关于cascade和inverse属性[文].pdf

    关于cascade和inverse属性[文].pdf

    Hibernate中cascade与inverse属性详解

    Hibernate中cascade与inverse属性详解

    Hibernate中Cascade和inverse的区别

    Hibernate中Cascade和inverse的区别,讲解的很详细

    Hibernate中cascade与inverse属性详解.doc

    于Hibernate中 cascade 与 inverse 的理解。 您买的Hibernate书是哪一本呢? 孙卫琴的精通Hibernate,还是 深入浅出Hibernate还是那本。。。 我是两本都买了,总体来说还可以,但是,有的地方讲的比较书面化,比如...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    本章介绍一对多关联关系的映射方法,重点介绍inverse属性和cascade属性的用法。本章还将介绍通过Hibernate API来保存、修改和删除具有关联关系的对象的方法。 7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-...

    精通Hibernate:对象持久化技术第二版part3

    本章介绍一对多关联关系的映射方法,重点介绍inverse属性和cascade属性的用法。本章还将介绍通过Hibernate API来保存、修改和删除具有关联关系的对象的方法。 7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-...

    hibernate总结

    <set name="emps" inverse ="true" lazy="true" cascade="none" batch-size="2" fetch="join" > Hibernate映射多对一: public class Emp implements java.io.Serializable { private Integer ...

    Hibernate注释大全收藏

    在特定的实体关联属性上使用 @Embeddable 和 @AttributeOverride 注解可以覆盖该属性对应的嵌入式对象的列映射。 @Entity public class Person implements Serializable { // Persistent component using defaults...

    JAVA自学之路

    7:XML (XML/XSL、XSLT/DTD、SCHEMA等基础的概念、关于Java的编程可以暂时扔在一边) 8:Hibernate OR Mapping原理 Hibernate基础开发步骤 ...inverse lazy cascade 继承关系映射 HQL 性能优化 一级

    Hibernate_Annotation关联映射

    Troop通过troop属性和Soldier建立一对多的双向关联,在mappedBy端不必也不能再定义任何物理映射。 对于一对多的双向映射,如果要一对多这一端维护关联关系,你需要删除mappedBy元素并将多对一这端的@JoinColoumn的...

    jdbc基础和参考

    cascade:级联属性 none:不做任何级联操作 save-update:对当前对象执行save,update, saveOrupdate,会级联操作和它相关联的对象 delete:在删除当前对象的时候,级联删除和他相关联的对象 all: save-update+delete ...

    hibernate 3中的缓存小结

    <set name="products" table="products" cascade="all" inverse="true"> <!-- Hibernate只会缓存对象的简单属性的值, 要缓存集合属性,必须在集合元素中也加入子元素 而Hibernate仅仅是把与当前持久对象关联的...

Global site tag (gtag.js) - Google Analytics