Для меня проверки автоматической фиксации и изоляции транзакции было недостаточно, поскольку для них было установлено одинаковое значение (false
и Connection.TRANSACTION_READ_COMMITTED
соответственно), как при прямом подключении к Hibernate (автономно), так и когда работает внутри контейнера JEE (управляемые транзакции).
Поскольку я не нашел никаких других атрибутов, я использовал следующий код, который проверяет, имеет ли тип подключения org.jboss.jca.adapters.jdbc.jdk7.WrappedConnectionJDK7
(или аналогичный).
if (!conn.getAutoCommit()) {
if (!conn.getClass().getName().startsWith("org.jboss.jca.")) {
conn.commit();
}
}
Я не доволен этим решением, поэтому, если у кого-то есть идея получше, пожалуйста, дайте мне знать!