"Transaction Synchronized Session" 参考 Spring-Hibernate 是什么意思?

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

众所周知,在 Spring-Hibernate 应用程序中不使用 @Transactional 注释会导致 Hibernate 异常:

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

我想知道 "transaction synchronized session" 是什么意思?

是一个状态与底层事务同步的Session。例如:事务完成后会话关闭。

Spring 使用包含一组 TransactionSynchronization 适配器的 TransactionSynchronizationManager 对其进行管理。 AbstractPlatformTransactionManager 在对事务执行不同的操作时调用这些适配器。

最值得注意的同步是 SpringSessionSynchronization。除其他外,它负责在事务完成后提交和关闭会话之前刷新会话。