知识点:
【
集合映射(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>
集合映射(set, list, array,bag, map)
Set:不可重复、没有顺序
List:可重复、有顺序
<list name=”employees” >
<key column=”depart_id”/>
<!—表中有单独的整型列表示list-index 记录插入数据的数据
<list-index column=”order_column”/>
<one-to-many class=”Employee”/>
</list>
<array name=”employees” >
<key column=”depart_id”/>
<!—表中有单独的整型列表示list-index
<list-index column=”order_column”/>
<one-to-many class=”Employee”/>
</array>
集合映射(set, list, array,bag, map)
Bag:必须使用List于之对应但没有顺序了
<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>
集合映射(set, list, array,bag, map)
这些集合类都是Hibernate实现的类和JAVA中的集合类不完全一样,set,list,map分别和JAVA中的Set,List,Map接口对应,bag映射成JAVA的List;这些集合的使用和JAVA集合中对应的接口基本一致;在JAVA的实体类中集合只能定义成接口不能定义成具体类, 因为集合会在运行时被替换成Hibernate的实现。
集合的简单使用原则:大部分情况下用set,需要保证集合中的顺序用list,想用java.util.List又不需要保证顺序用bag。
级联和控制翻转
cascade和inverse (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>中设置级联。
inverse表“是否放弃维护关联关系”(在Java里两个对象产生关联时,对数据库表的影响),在one-to-many和many-to-many的集合定义中使用,inverse=”true”表示该对象不维护关联关系;该属性的值一般在使用有序集合时设置成false(注意hibernate的缺省值是false)。
one-to-many维护关联关系就是更新外键。many-to-many维护关联关系就是在中间表增减记录。
注: 配置成one-to-one的对象不维护关联关系
】
注意:在使用结合映射的时候我们在java代码中不能使用集合的实现类去编写代码 而是使用集合 因为hibernate在将数据映射到表中的时候会对我们编写的集合进行改写 hibernate重写了jdk中的所有集合而这些重写的集合了于jdk中的集合实现类没有任何继承关系 所有如果直接使用jdk中的实现类去编写代码在映射到表示会发生类型转换异常
Hibernate中使用的集合类型-集合映射-级联操作-控制翻转
原创
©著作权归作者所有:来自51CTO博客作者青年IT男1的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:hibernate一对一关联映射
下一篇:hibernate多对一关联映射
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【hibernate框架】几种集合映射
1.Set前面我们已经用过,就不再说。2.ListGroup.java:package cn.edu.hpu.listMapping;import java.util.Arra
hibernate map set list hibernate集合映射 -
Hibernate中映射集合属性
集合属性大致有两种:第一种是单纯的集合属性,如像 List、Set 或
java 数据库 List hibernate -
Hibernate 简单数据集合映射
在编写数据库的时候我们常常会遇到实体中含有集合类型的情况,比如User实体,它除了
hibernate java 外键 -
hibernate集合映射inverse和cascade详解
1、到底在哪用cascade="..."?cascade属性并不是多对多关系一定要用的,有了它只是让我们在
Hibernate SQL hibernate sql 数据库