別のクライアントセッションから1つのクライアントセッションのオブジェクトにアクセスする方法はありますか?
2 に答える
エンティティをクライアント セッション (ClassDescriptor.setIsIsolated) に分離していない限り、ClientSession は実際にはエンティティ インスタンスを保持しません。そのため、キャッシュを無効にしない限り、ClientSession に対するすべてのクエリは同じエンティティ インスタンスを返します。
エンティティを分離しているか、実際に UnitOfWork を使用している場合は、保持している UnitOfWork/IsolatedClientSession から値を取得する必要があります。複数のスレッドで同時に UnitOfWork または ClientSession にアクセスすることはお勧めできません。
あなたが何を達成しようとしているのかはわかりませんが、TopLink Developer Guide のServer and Client Sessionsによると、複数のスレッド間でクライアント セッションを共有することは想定されていません。
クライアント セッションはスレッド セーフですが、複数のスレッドにまたがる書き込みには使用しないでください。同じクライアント セッションからのマルチスレッド書き込み操作により、エラーが発生し、データが失われる可能性があります。詳細については、「同時実行性」を参照してください。
なぜこれが必要なのかを明確にしていただけますか?