Hibernate 组件属性为集合、集合属性的元素为组件的配置

1:组件属性为集合的配置,及在组件中包含集合

如 Name 中含有 Map<String,Integer> power; 的部署如下


在component 中使用 集合属性配置的元素

【component  要求属性的集合不是基本类型,不是 String 类型, 不是 Date 类型的自定义类型】

<component> 中也能使用《many-to-one > 等标签

	<component name="myname" class="Name" unique="true">
			<!-- 指定 owner 属性代表的实体 -->
			<parent name="owner"/>
			<property name="first"></property>
			<property name="last"></property>
			<!-- 映射组件中的集合 -->
			<map name="power" table="name_power">
				<!-- 集合属性数据表的外键列 -->
				<key column="preson_name_id"></key>
				<!-- 集合属性数据库表 的  May 的 Key 列 -->
				<map-key type="string" column="name_aspectt"></map-key>
				<!-- 映射集合属性的元素 -->
				<element column="power" type="int"></element>
			</map>
		</component>
结果如下:

也是通过主键的外键约束实现的


2:集合属性为组件的配置

主要用<composite-element> 标签,其用法与上面的 <component> 相似。

注意:如果组件的属性 又含有组件 则使用 <nested-composite-element> 进行配置。nested -是嵌套的意思。

        Hibernate 为了简化管理 不允许在<composite-element> 中使用 list map 等集合。

	<map name="nicks" table="nicks_inf">
			<!-- 指定集合属性数据库表的外键 -->
			<key column="person_id"></key>
			<!-- 映射集合中 Map key 在数据库表中 -->
			<map-key column="phase" type="string"></map-key>
			<!-- 配置组件元素 用 composit-element标签 -->
			<composite-element class="Name">
				<parent name="owner"/>
				<property name="first"></property>
				<property name="last"></property>
			</composite-element>
		</map>

结构如下:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值