0

我正在尝试使用 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>

但是,当从数据库中填充此对象时,我期望在“列表”中的任何内容也将显示在“其他列表”中。我想我错过了一个简单的配置更改以允许休眠正确存储这两个列表,但我无法弄清楚。

有什么帮助吗?

4

1 回答 1

2

s 包含相同的<list>内容,因为您告诉 Hibernate在两个实例中path.to.MyType使用相同的映射相同的类 ( ) 。<key column="USER_ID">你确定你没有在 Hibernate 映射中出错吗?

从概念上讲,Hibernate 实现这些集合的方法是发出一个查询,例如

SELECT m.* from MyType m where m.USER_ID = this.USER_ID

如果您告诉 Hibernate 使用相同的查询来映射两者listotherList,它如何为相同的查询返回不同的结果?

于 2011-05-10T15:51:35.580 回答