Hibernate高级映射

 

       集合映射:对应的类没有对象表示符属性,只能作为一个持久化类的属性使用。如果持久化类中有一个值类型的集合,那么就需要一张额外的数据库表来保存这个值类型的集合,这张表被称为集合表。

       集合的类型有:<set>、<list>、<bag>、<map>、<primitive-array>

       1、<set>:元素储存没有顺序不允许重复

示例:private Set<String> hobbies;//个人爱好属性

映射:<set name=”hobbies” table=”student_hobby”>

                     <key column=”student_id”/><!—key子元素:指定元素集合属性对应的表的外键-->

                     < element type=”string” column=”hobbies_name” not-null=”true”/><!—element子元素,映射集合内的元素-->

</set>

2、<list>在集合属性对应数据库表中用一个额外的索引列保存每个属性的位置

示例:private List<String> hobbies;//个人爱好属性

映射:<list name=”hobbies” table=”student_hobby”>

                     <key column=”student_id”/><!—key子元素:指定元素集合属性对应的表的外键-->

                     <list-index column=”posistion”><!--指定索引列-->

                     < element type=”string” column=”hobbies_name” not-null=”true”/><!—element子元素,映射集合内的元素-->

              </list>

3、<bag>元素可能重复,但不能保存顺序

示例:private Collection<String> hobbies;//个人爱好属性

映射:<bag name=”hobbies” table=”student_hobby”>

                     <key column=”student_id”/><!—key子元素:指定元素集合属性对应的表的外键-->

                     < element type=”string” column=”hobbies_name” not-null=”true”/><!—element子元素,映射集合内的元素-->

              </bag>

4、<map>可以映射为java.uitl.Map接口的属性,以键/值对的形式保存,也是无序的,也可以映射为java.uitl.SortMap接口的属性,元素可以按自然顺序排列

示例:private Map<Long,String> hobbies;//个人爱好属性

映射:<map name=”hobbies” table=”student_hobby”>

<key column=”student_id”/><!--key元素:指定元素集合属性对应的表的外键-->

 

<map-key column=”hobby_id” type=”long”> <!—map-key元素:指定map属性的键对应表中的列-->

 

<element type=”string” column=”hobby_name” not-null=”true”><!—element子元素,映射集合内的元素-->

 

</map>

5、<primitive>或<array>映射类型为数组的属性

示例:private SortedSet<String> hobbies;

映射:<set name=”hobbies” table=”student_hobby” sort=”natural”>

                     <key column=”student_id”/><!—key子元素:指定元素集合属性对应的表的外键-->

                     < element type=”string” column=”hobbies_name” not-null=”true”/><!—element子元素,映射集合内的元素-->

</set>

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值