質問

EclipseLink 2.0.1を使用するスタンドアロンJavaアプリケーションがあります。これは、persistence.xml によって構成され、次のような処理を行います。

final EntityManagerFactory emf = Persistence.createEntityManagerFactory("xy");
final EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
....
em.getTransaction().commit();

そのトランザクションに実際に適用されるデータベース トランザクション分離レベルを知りたいと考えています。「ダーティ デバッグのみ」のソリューションでも役に立ちます。

EclipseLinkのドキュメント 説明します, 、 それ

EclipseLink アプリケーションで特定のデータベース・トランザクション分離レベルを達成するには、単に DatabaseLogin メソッド setTransactionIsolation を使用するよりも複雑な作業が必要です。

したがって、希望する分離レベルが適用されていることを確認したいと思います。

役に立ちましたか?

解決

使用する Connection#getTransactionLevel() 根底にあるもの Connection 機能するはずです。JPA 2.0 でそれを取得する方法は次のとおりです。

final EntityManagerFactory emf = Persistence.createEntityManagerFactory("xy");
final EntityManager em = emf.createEntityManager();
em.getTransaction().begin();

java.sql.Connection connection = em.unwrap(java.sql.Connection.class);
System.out.println(connection.getTransactionIsolation());

....
em.getTransaction().commit();

参照

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top