在 Hibernate 中映射一个有 2 个列表的对象会导致问题

发布于 2024-11-05 21:28:07 字数 830 浏览 3 评论 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>

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

有什么帮助吗?

I'm trying to save an object that has 2 similar lists using a hbm.xml file. Below is my model object and HBM:

public class MyClass {

...

    private List<MyType> list;

    private List<MyType> otherList;

...

}

My HMB for this section is as follows:

    <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>

However, when this object gets populated from the database, whatever I expect to be in 'list' is also showing up in 'otherList'. I imagine I'm missing a simple configuration change to allow hibernate to store these 2 lists properly, but I can't figure it out.

Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风苍溪 2024-11-12 21:28:07

包含相同的内容,因为您告诉 Hibernate 使用相同的 path.to.MyType)在这两种情况下,column="USER_ID">。您确定 Hibernate 映射没有出错吗?

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

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

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

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

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

If you tell Hibernate to use the same query to map both list and otherList, how can it return different results for the same query?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文