gpt4 book ai didi

java - 在 session 期间更改 Hibernate Session.FlushMode

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:11 24 4
gpt4 key购买 nike

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

问题:- 在 session 期间更改 FlushMode 是否存在任何问题/危险?

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

最佳答案

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

所以,这取决于您的代码的作用。如果此行为不影响功能,那么应该没问题。

关于java - 在 session 期间更改 Hibernate Session.FlushMode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com