1

我的应用程序使用FlushMode.AUTO. 对于特定的服务方法调用,我想更改 Hibernate Session。FlushModeFlushMode.COMMIT并恢复到FlushMode.AUTO方法完成时。

问题:- 在会话期间更改 FlushMode 是否有任何问题/危险?

在会话期间更改 FlushMode 的原因:- 我正在使用 Hibernate Interceptor Approach ( onFlushDirty) 来审核更改。使用 FlushMode.AUTO 时,会发生多个会话刷新(行为FlushMode.AUTO)。因此,因此onFlushDirty被多次调用导致重复审计。FlushMode我通过更改为COMMIT我期望进行审计的方法来解决上述问题。

4

1 回答 1

0

触发自动刷新的最常见原因是在执行过程中使用执行查询。如果 Hibernate 检测到会话中的一些未刷新的更改可能会影响查询的结果,那么它会自动触发刷新。因此,当您的查询执行时,它会获取与您在会话中所做的更改一致的数据。

所以,这取决于你的代码做什么。如果此行为不影响功能,则应该没问题。

于 2015-06-10T22:23:43.013 回答