Pergunta

Eu tenho um aplicativo Java independente que usa o Eclipselink 2.0.1. É configurado por uma persistência.xml e depois faz algo como:

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

Quero descobrir qual nível de isolamento da transação do banco de dados se aplica a essa transação. Mesmo uma solução "apenas depuração suja" seria útil.

A documentação do Eclipselink descreve, este

A obtenção de um nível de isolamento de transação de banco de dados em um aplicativo eclipselink está mais envolvido do que simplesmente usar o método do banco de dados SetTransactionisolation

Então, quero ter certeza de que meu nível de isolamento desejado se aplica!

Foi útil?

Solução

Usando Connection#getTransactionLevel() no subjacente Connection Deveria trabalhar. Aqui está como você pode obtê -lo com o 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();

Referência

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top