zoukankan      html  css  js  c++  java
  • 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); 
  • 相关阅读:
    android 6.0 新特性
    接口_ _接口回调机制
    bug_ _
    volley_缓存介绍
    bug__android studio 出现布局文件不提示,且点击代码不能跟踪代码
    文章--笔记本蓝牙可以搜索到手机,但是怎么连接不了?
    Dialog_ _dialog系统样式讲解 及 透明背景
    动画_ _ Android应用开发之所有动画使用详解
    view坐标_ _ Android应用坐标系统全面详解
    html__脚本之家
  • 原文地址:https://www.cnblogs.com/kuyuyingzi/p/4266390.html
Copyright © 2011-2022 走看看