浏览 1254 次
锁定老帖子 主题:hibernate集合类映射的疑惑
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-04
首先我们以一个例子来说明: ITEM 与IMAGE(假设有多个字段比如name path size,item_id 等)
显然它们是一对多的关系,要实现它们的关联 则需在ITEM中需要加入一个集合类映射 这里牵涉到两种办法来解决这个问题,hibernate中有两种类型,实体和值类型。所以 第一:当用实体类型时其实就是用<one- to -many>即:item映射文件中加入: <key column="item_id"></key> <one-to-many class="Image"> </set>
第二:当使用值类型时,则需要使用到组件的结合 即:item映射文件中加入: <key column="item_id"/> <composite-element class="Image"> <property name="name" column=""/> ... </composite-element > </set>
这两者都可以实现ITEM和IMAGE的关联,但是区别就在第2中的IMAGE不是一个实体类(持久化类),没有标识符。使用所有字段作为联合主键。 显然在实际中第一种应该会用到多些,我想不通“值类型的集合映射”在哪里有应用场景? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-04
我想hibernate实现这两种关联实际上就是为了表示了UML中聚集和组合的概念。不知道hibernate能否映射内部类,如果能的话这个应该是一个应用场景。
在代码层面就不清楚了,也许hibernate会为值对象映射作一些优化吧。 |
|
返回顶楼 | |
发表时间:2009-11-04
[b][/b][i][/i][u][/u]
引用 [img][/img] |
|
返回顶楼 | |