What does it mean by "Transaction Synchronized Session" with reference to Spring-Hibernate?

770 views Asked by At

Like we all know, not using the @Transactional annotation in a Spring-Hibernate application gives a Hibernate Exception:

Exception in thread "main" org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread

I wanted to know what does it mean by "transaction synchronized session"?

1

There are 1 answers

2
chimmi On BEST ANSWER

It is a Session whose state is synchronized with underlying transaction. For example: after transaction is completed the session closes.

Spring manages it with TransactionSynchronizationManager that holds a set of TransactionSynchronization adapters. AbstractPlatformTransactionManager calls those adapters when performing different actions with transaction.

Most notable synchronization is SpringSessionSynchronization. Among other things it is responsible for flushing session before commit and closing session after transaction is completed.