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>

ただし、このオブジェクトがデータベースから読み込まれると、「リスト」にあると予想されるものはすべて「otherList」にも表示されます。hibernate がこれらの 2 つのリストを適切に保存できるようにするための簡単な構成変更が欠けていると思いますが、わかりません。

何か助けはありますか?

4

1 に答える 1

2

両方のインスタンスで同じを使用して同じクラス ( ) を<list>マップするように Hibernate に指示しているため、 には同じコンテンツが含まれています。Hibernate マッピングでエラーを起こしていませんか?path.to.MyType<key column="USER_ID">

概念的には、これらのコレクションを具体化するために Hibernate が行うことは、次のようなクエリを発行することです。

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

list同じクエリを使用して と の両方をマップするように Hibernate に指示した場合、同じクエリに対してotherList異なる結果を返すにはどうすればよいでしょうか?

于 2011-05-10T15:51:35.580 に答える