Hibernate要求持久化集合值字段必须声明为接口。
List:用于映射List集合属性
Set:用于映射Set集合属性
Map:用于映射Map集合性
Array:用于映射数组集合属性
Bag:用于映射无序集合
idbag:用于映射无序集合,但为集合增加逻辑次序
映射如下:
<set name="setValue" table="t_setvalue">
<!-- 添加一字段指向id -->
<key column="setid"/>
<element type="string" column="setvalue"/>
</set>
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| set_id | int(11) | NO | MUL | | |
| set_value | varchar(255) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
<list name="listValue" table="t_listvalue">
<!-- 添加一字段指向id -->
<key column="listid"/>
<!-- 标记list中数据的顺序 -->
<list-index column="listindex"/>
<element type="string" column="listvalue"/>
</list>
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| list_id | int(11) | NO | PRI | | |
| list_value | varchar(255) | YES | | NULL | |
| list_index | int(11) | NO | PRI | | |
+------------+--------------+------+-----+---------+-------+
<array name="arrayValue" table="t_array">
<!-- 添加一字段指向id -->
<key column="arrayid"/>
<!-- 标记array中数据的顺序 -->
<list-index column="arrayindex"/>
<element type="string" column="arrayvalue"/>
</array>
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| array_id | int(11) | NO | PRI | | |
| array_value | varchar(255) | YES | | NULL | |
| array_index | int(11) | NO | PRI | | |
+-------------+--------------+------+-----+---------+-------+
<map name="mapValue" table="t_map">
<key column="mapid"/>
<map-key type="string" column="mapkey"/>
<element type="string" column="mapvalue"/>
</map>
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| map_id | int(11) | NO | PRI | | |
| map_value | varchar(255) | YES | | NULL | |
| map_key | varchar(255) | NO | PRI | | |
+-----------+--------------+------+-----+---------+-------+
bag与ibag元素映射,具体可参考http://www.ntsky.com/docs/java/HibernateGossip/HibernateGossip/Bag.html
bag元素既可以为List集合属性映射,也可以为Collection集合属性映射。不管是哪种集合属性,使用bag元素都将被映射成无序集合,而集合属性对应的表没有
xml 代码
<bag name="school" table="schools">
<key column="pid" not-null="true"/>
<element type="string" column="school_name"/>
<bag>
其中:<element type="string" column="mapvalue"/>可用<one-to-many class=""/>、<many -to-oneclass=""/>、<many -to-many class=""/>、<composite-element class=""/>代替,原因是在多的一方加个外键关联。
分享到:
相关推荐
student与Score的Map集合关系 student与class的多对一 一对多映射
hibernate集合映射inverse和cascade详解.txt
Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。在 Hibernate 中,集合映射是指将 Java 集合类型与数据库表之间的映射关系。常见的集合映射类型...
NULL 博文链接:https://wintys.iteye.com/blog/426022
介绍的很详细,个人觉得不错!!!
hibernate集合的映射 集合的映射 set list array map
NULL 博文链接:https://lijunabc.iteye.com/blog/443381
Hibernate映射集合属性List,用于映射集合属性 List Hibernate 自动生成表 不需sql
NULL 博文链接:https://lijunabc.iteye.com/blog/443278
JAVA培训-HIBERNATE的集合映射.doc
Hibernate关系映射 Hibernate主键策略与属性 Hibernate集合映射
NULL 博文链接:https://lijunabc.iteye.com/blog/443353
hibernate中的集合映射,各种集合类型的使用方法及适用场景
NULL 博文链接:https://lijunabc.iteye.com/blog/443305
第12章 基于annotation注解技术的ssh 2整合开发 12.1 初识annotation522 12.2 亲身体验annotation的威力524 ...12.4.12 hibernate集合映射的annotation注解实现552 12.5 基于annotation的ssh 2整合开发554 12.6 小结563
2,建立表的hibernate支持,生成tb_user类和对应的配置文件 3,修改配置文件使之和相应的类对应, 4,修改tb_user类,创建一个set类型的字段emailes,生成它的set和get方法 5,写测试类,对以上内容进行测试。 二、...