代码之家  ›  专栏  ›  技术社区  ›  Chris Lercher

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

  •  1
  • Chris Lercher  · 技术社区  · 14 年前

    我有一个独立的Java应用程序,使用了Eclipse Simulink 2.0.1。它由persistence.xml配置,然后执行如下操作:

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

    我想知道,哪个数据库事务隔离级别实际应用于该事务。即使是“只进行脏调试”的解决方案也会有所帮助。

    EclipseLink文档 describes ,那

    在EclipseLink应用程序中实现特定的数据库事务隔离级别比简单地使用databaselogin方法setTransactionSolation要复杂得多。

    所以我想确定,我想要的隔离级别是适用的!

    1 回复  |  直到 14 年前
        1
  •  2
  •   Pascal Thivent    14 年前

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

    参考文献