Skip to content

Instantly share code, notes, and snippets.

@alejandro-du
Created April 20, 2022 13:53
Show Gist options
  • Save alejandro-du/c07654e3c778687396b014d9dba9aef0 to your computer and use it in GitHub Desktop.
Save alejandro-du/c07654e3c778687396b014d9dba9aef0 to your computer and use it in GitHub Desktop.
Prints the transaction isolation level used by Hibernate in a Spring Boot application
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ApplicationTests {
@Autowired
private SessionFactory sessionFactory;
@Test
public void test() {
try (Session session = sessionFactory.openSession()) {
Transaction txn = session.beginTransaction();
session.doWork(connection -> {
int isolationLevel = connection.getTransactionIsolation();
String isolationLevelName = ConnectionProviderInitiator.toIsolationNiceName(isolationLevel);
System.out.println("Transaction isolation level: " + isolationLevelName);
});
txn.rollback();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment