我有一个使用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更为复杂
所以我想确保我所需的隔离级别适用!
答案 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();