我有一个实现postFlush()
. 据我了解,后刷新是数据已保存到数据库中,但在调用提交之前会回滚。如果我有一个看起来像这样的休眠配置:
<property name="hibernate.transaction.flush_before_completion">true</property>
这是否意味着在提交之前将数据保存到数据库中?哪个与冲洗后相同?postFlush()
这会在预刷新阶段导致休眠拦截器调用吗?
属性 hibernate.transaction.flush_before_completion 用于“容器管理事务 (CMT)”或 JTA,如果您使用的是 JDBC 事务,则它不相关。
如果设置为 true,将在事务完成之前的阶段执行刷新,将所有数据发送到数据库(仍然可以回滚)。此刷新不由休眠会话管理。
如果设置为 false,则在提交之前执行自动会话管理的休眠刷新,因此将调用 postFlush。
Hibernate Interceptor的postFlush()
方法只会在 hibernate 托管的 Flush 执行之后,事务提交之前被调用。