2

我有一个使用 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 更复杂

所以我想确保我想要的隔离级别适用!

4

1 回答 1

3

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();

参考

于 2010-08-08T20:55:25.817 回答