8

このStatelessSessionインターフェースを休止状態で使用することを計画しています。しかし、ここで説明されているように、どのようなデータエイリアシング効果があるのか​​わかりません

4

1 に答える 1

7

次のようなデータを検討してください

table parent
id | name
---------
1  | 'foo'

table child
id | parent_id
--------------
1  | 1
2  | 1

とクエリ

session.query("from child").list();

その場合、以下は forStatelessSession sessionではなく for で失敗しますSession session

childs.get(0).getParent().setName("bar");

assertEqual("bar", childs.get(1).getParent().getName());

アップデート:

StatelessSession はロードしたオブジェクトを「記憶」しないため、2 番目の子を脱水している間、参照先の親オブジェクトが既に作成されていることを認識せず、同じ値を持つが同じ参照ではない別の親オブジェクトを作成します。

于 2012-11-28T08:19:37.173 に答える