hibernate集合类映射的疑惑

 

首先我们以一个例子来说明:

 ITEM 与IMAGE(假设有多个字段比如name path size,item_id 等)

 

显然它们是一对多的关系,要实现它们的关联

则需在ITEM中需要加入一个集合类映射

这里牵涉到两种办法来解决这个问题,hibernate中有两种类型,实体和值类型。所以

第一:当用实体类型时其实就是用<one- to -many>即:item映射文件中加入:
<set name="image" table="image">

<key column="item_id"></key>

<one-to-many  class="Image">

</set>

 

第二:当使用值类型时,则需要使用到组件的结合

即:item映射文件中加入:
<set name="image" table="image">

<key column="item_id"/>

<composite-element class="Image">

<property name="name" column=""/>

...

</composite-element >

</set>

 

这两者都可以实现ITEM和IMAGE的关联,但是区别就在第2中的IMAGE不是一个实体类(持久化类),没有标识符。使用所有字段作为联合主键。

显然在实际中第一种应该会用到多些,我想不通“值类型的集合映射”在哪里有应用场景?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值