0

みたいな関係を持っています。

<set name="someBeans" table="sometable" cascade="all, delete-orphan" inverse="true" lazy="true">
        <key column="some_id" />
        <one-to-many class="someBean" />
    </set>

私のJavaコードでは、これに対して実行されるセットがありました

myClass.setSomeBeans(SomeBeans); 

現在、この SomeBeans はlinkedHashmapであるため、順序は維持されましたが、カスケードで使用されているすべての孤立した削除のため、特定のシナリオで次のように例外が発生していました:

HibernateException – A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance

だから私は上記のJava実装を

myClass.getSomeBeans().clear();
myClass.getSomeBeans().addAll(SomeBeans)

ただし、これを行うと、linkedHashMap SomeBeans からの注文を維持できません。

誰かがそのような問題に直面したことはありますか?

よろしく、

バイバブ

4

1 に答える 1

0

私が望んでいたことを達成するために、休止状態のオブジェクトからプロパティをコピーしてダミーオブジェクトを作成し、それにソートを適用しました。これは保存され、孤児の削除に関連するすべての問題も処理されました。

于 2012-09-27T05:01:37.437 に答える