在 Hibernate 中映射一个有 2 个列表的对象会导致问题
我正在尝试使用 hbm.xml 文件保存具有 2 个相似列表的对象。下面是我的模型对象和 HBM:
public class MyClass {
...
private List<MyType> list;
private List<MyType> otherList;
...
}
本节的 HMB 如下:
<list name="list" cascade="all-delete-orphan"
lazy="false">
<key column="USER_ID" />
<list-index column="index" />
<one-to-many class="path.to.MyType" />
</list>
<list name="otherList" cascade="all-delete-orphan"
lazy="false">
<key column="USER_ID" />
<list-index column="index" />
<one-to-many class="path.to.MyType" />
</list>
但是,当从数据库填充该对象时,我期望在“list”中出现的任何内容也会显示在“otherList”中。我想我错过了一个简单的配置更改,以允许休眠正确存储这两个列表,但我无法弄清楚。
有什么帮助吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
包含相同的内容,因为您告诉 Hibernate 使用相同的path.to.MyType
)在这两种情况下,column="USER_ID">。您确定 Hibernate 映射没有出错吗?从概念上讲,Hibernate 实现这些集合的方法是发出一个查询,例如
如果您告诉 Hibernate 使用相同的查询来映射
list
和otherList
,它如何返回不同的结果相同查询的结果?The
<list>
s contain the same content because you are telling Hibernate to map the same class (path.to.MyType
) using the same<key column="USER_ID">
in both instances. Are you sure you haven't made an error in the Hibernate mapping?Conceptually, what Hibernate will do to materialize these collections is issue a query like
If you tell Hibernate to use the same query to map both
list
andotherList
, how can it return different results for the same query?