私は現在の永続コンテキストと、必要であればエンティティの存在をサポートするデータベースの両方を検索したいと思います。これはスタンドアローンのjava-seアプリケーションです。 (java-eeアプリケーションコンテナでは動作しません)スレッドセーフであることを心配する必要はありません。 EntityTransactionのコンテキスト内でデータベースをクエリする必要はありますか?entityManager.find()を呼び出すにはEntityTransactionが必要ですか?
基本的な違いがありますか?それが必要とされていない読むだけ操作のための
entityManager.getTransaction.begin();
MyEntity me = entityManager.find(MyEntity.class, myEntity.getPrimaryKey());
entityManager.getTransaction.commit();
あなたが言及した状況ではREAD_ONLYではないので、私の答えは100%正しいです。あなたがロックを置いた瞬間、バージョンフィールドはジャンプし、操作はもはやREAD_ONLYにならなくなります。したがってトランザクションが必要になります。しかし、READ_ONLY操作を続ける限り、トランザクションは必要ありません。そして、あなたが私をもう一度読んだら、これは私のポストで「読まれている限り、トランザクションは必要ない」と言ったことです。 –