Hibernate----学习(11)----set节点

1.<set> 元素来映射持久化类的 set 类型的属性

   –name: 设定待映射的持久化类的属性的

2.  <set> 元素的 inverse 属性

        2.1 hibernate中通过对 inverse 属性的来决定是由双向关联的哪一方来维护表和表之间的关系.

            inverse = false 的为主动方,inverse = true 的为被动方, 由主动方负责维护关联关

2.2 在没有设置 inverse=true 的情况下,父子两边都维护父子关系

2.3 1-n 关系中,将 n 方设为主控方将有助于性能改善

     (如果要国家元首记住全国人民的名字,不是太可能,但要让全国人民知道国家元首,就容易的多)

      2.4 1-N 关系中,若将 1 方设为主控方

              –会额外多出 update 语句

             –插入数据时无法同时插入外键列,因而无法为外键列添加非空约束

<!-- inverse: 指定由哪一方来维护关联关系. 通常设置为 true, 以指定由多的一端来维护关联关系 -->
<set name="orders" table="ORDERS" inverse="true" >
        <key column="CUSTOMER_ID"></key>   
        <one-to-many class="Order"/>
</set>

3. <set> 元素的cascade 属性:它用于指定如何操纵与当前对象关联的其他对象. (设置级联操作)

     3.1 cascade="delete"  会删除所有的关联

<set name="orders" table="ORDERS" inverse="true"  cascade="delete">
        <key column="CUSTOMER_ID"></key>        
        <one-to-many class="Order"/>
</set>

   3.2   cascade="delete-orphan" 会自动删除解除关联的对象。

@Test
public void testCascadeDelete(){
	Customer customer = (Customer) session.get(Customer.class, 33);
	customer.getOrders().clear();  //解除关联
}
 <set name="orders" table="ORDERS" inverse="true"  cascade="delete-orphan">   	
        	<key column="CUSTOMER_ID"></key>
        	<one-to-many class="Order"/>
 </set>

  3.3 cascade="save-update" 级联保存

 

4. <set> 元素的个 order-by 属性:当 Hibernate 通过 select 语句到数据库中检索集合对象时, 利用 order by 子句进行排序

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值