【发布时间】:2026-02-14 15:15:01
【问题描述】:
我的应用程序使用 FlushMode.AUTO 。
对于特定的服务方法调用,我想将 Hibernate Session.FlushMode 更改为 FlushMode.COMMIT 并在方法完成时恢复为 FlushMode.AUTO。
问题:- 在会话期间更改 FlushMode 是否有任何问题/危险?
在会话期间更改 FlushMode 的原因:-
我正在使用 Hibernate 拦截器方法 (onFlushDirty) 来审核更改。
使用 FlushMode.AUTO 时,会发生多个会话刷新(FlushMode.AUTO 的行为)。因此,onFlushDirty 被多次调用,导致重复审计。
我通过将 FlushMode 更改为 COMMIT 在我期望进行审计的方法中解决上述问题。
【问题讨论】:
标签: java hibernate interceptor hibernate-session