EclipseLink:检查当前事务隔离级别

时间:2010-08-08 15:17:37

标签: java jpa transactions eclipselink jpa-2.0

我有一个使用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文档describes

  

在EclipseLink应用程序中实现特定的数据库事务隔离级别比简单地使用DatabaseLogin方法setTransactionIsolation更为复杂

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

1 个答案:

答案 0 :(得分:2)

在基础Connection上使用Connection#getTransactionLevel()应该有效。以下是使用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();

参考