20160509-hibernate-集合映射

本文介绍了Hibernate中集合映射(set、list、array、bag、map)的基本使用原则及应用场景,并详细解释了cascade和inverse属性的作用,帮助读者理解如何正确配置实体间的关联关系。
集合映射
集合映射(set, list, array,bag, map)
<set name=”employees” >
        <key column=”depart_id”/>
        <one-to-many class=”Employee”/>
        <!-- <element type="string" column="name"/> -->
        <!--
            <composite-element class=”YourClass”>
                <property name=”prop1”/>
                <property name=”prop2”/>
            </composite>
        -->
</set>

 

<bag name="employees " order-by="id desc">
        <key column=”depart_id”/>            
        <one-to-many class=”Employee”/>
</bag>
<map name="employees ">
        <key column=”depart_id”/>
        <map-key type="string" column="name"/>
        <one-to-many class=”Employee”/>
</map> 

 

这些集合类都是Hibernate实现的类和JAVA中的集合类不完全一样,set,list,map分别和JAVA中的Set,List,Map接口对应,bag映射成JAVA的List;这些集合的使用和JAVA集合中对应的接口基本一致;JAVA的实体类中集合只能定义成接口不能定义成具体类, 因为集合会在运行时被替换成Hibernate的实现。
集合的简单使用原则:大部分情况下用set,需要保证集合中的顺序用list,想用java.util.List又不需要保证顺序用bag。
 
cascadeinverse (Employee – Department)
     Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的cascade:
none,all,save-update ,delete, lock,refresh,evict,replicate,persist,
merge,delete-orphan(one-to-many) 。一般对many-to-one,many-to-many不设置级联,在<one-to-one>和<one-to-many>中设置级联。
 
    linverse表“是否放弃维护关联关系”(在Java里两个对象产生关联时,对数据库表的影响),在one-to-many和many-to-many的集合定义中使用,inverse=”true”表示该对象不维护关联关系;该属性的值一般在使用有序集合时设置成false(注意hibernate的缺省值是false)。
one-to-many维护关联关系就是更新外键。many-to-many维护关联关系就是在中间表增减记录。
注: 配置成one-to-one的对象不维护关联关系
 
 

转载于:https://www.cnblogs.com/xiaoduc-org/p/5473079.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值