EclipseLink: проверка текущего уровня изоляции транзакции
-
26-09-2019 - |
Вопрос
У меня есть автономное приложение Java, которое использует ECLIPSELINK 2.0.1. Он настроен на сохранении .xml, а затем делает что-то вроде:
final EntityManagerFactory emf = Persistence.createEntityManagerFactory("xy");
final EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
....
em.getTransaction().commit();
Я хочу выяснить, какой уровень изоляции транзакции базы данных фактически применяется к этой транзакции. Даже решение «только грязное отладки» было бы полезным.
Документация EclipseLink. описывает, это
Достижение определенного уровня изоляции транзакции базы данных в приложении ECLIPSELINK более вовлечено, чем просто с использованием метода метода базы данных файсов.
Поэтому я хочу убедиться, что мой желаемый уровень изоляции применяется!
Решение
С использованием 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();
Ссылка
- Получение связи JDBC от Entitismanager (охватывает как JPA 1.0, так и JPA 2.0)
Не связан с StackOverflow