0

私は古典的な一対多の関係を持っています。session.createQuery() アプローチを使用してデータベースから子エンティティのリストを読み取り、必要な少量の子エンティティのみをフィルタリングしました。各子には、親エンティティへの参照があります。次に、親エンティティのいくつかのフィールドを更新して保存します (変更が永続化されたことをログとデータベースで確認します)。しかし、 child.getParent() のような子エンティティから親を取得すると、更新前のフィールド値を持つ親オブジェクトへの参照が返されます。session.createQuery() を使用して db から読み取る代わりに、新しい子エンティティが構築されると、問題は発生しません。参照される親エンティティのフィールドには実際の値が含まれます。session.createQuery() を使用して取得した Bean の問題は何ですか? アドバイスをいただければ幸いです。

4

1 に答える 1

0

「変更された親」をもう一度子に設定する必要があります。

Parent parentToUpdate;

...
child.setParent(parentToUpdate);

...
session.persist(child);

変更をデータベースに送信したい場合は、それらを永続化する必要もあります。

于 2013-09-04T14:29:19.013 に答える