3

HibernateによってロードされたORMエンティティがあり、必要なときにLAZYがロードされた特定のアソシエーションがあります。このエンティティはMQを介してクライアントアプリケーションに転送され(クライアントは.NETであるため、MessagePackを使用してシリアル化/逆シリアル化しています)、エンティティがMsgPackによってシリアル化されると、遅延ロードされた関連付けにアクセスしようとしますが、失敗します。セッションはすでに閉じられています。また、失敗しなかったとしても、場合によっては関連付けをロードしたくない場合があります。

一部のクエリ結果のプロキシではなく、レイジーアソシエーションを空の値で埋めるように休止状態に指示する方法はありますか、または返されたリストを繰り返してこれらの変更を自分で実行する必要がありますか?

あなたの答えをありがとう!

4

2 に答える 2

2

他に方法はありませんが、DTOオブジェクトを使用して、MQを介して転送します。

  1. hibernateを使用してDBからエンティティをロードする
  2. を意味するDTOオブジェクトに変換しますSerializable
  3. MQを使用してコンシューマーに転送します
  4. それを反対側の他のエンティティに変換します。
于 2013-03-25T21:34:00.027 に答える
0

@TransientはORMにのみ適用されると思います。フィールドをシリアル化したくない場合は、キーワード「transient」を使用する必要があります。

private transient List<Object> myTransientList;
于 2013-03-25T21:32:57.407 に答える