gpt4 book ai didi

java - Hibernate flush_before_completion 像 post flush 或 pre flush 一样工作吗?

转载 作者:行者123 更新时间:2023-11-30 11:38:16 24 4
gpt4 key购买 nike

我有一个实现 postFlush() 的 Hibernate 拦截器.据我了解,刷新后是数据已保存到数据库中,但在调用提交之前可能会回滚。如果我有一个看起来像这样的 hibernate 配置:

<property name="hibernate.transaction.flush_before_completion">true</property>

这是否意味着在提交之前将数据保存到数据库中?哪个与 post flush 相同?这样会不会导致hibernate拦截器postFlush()在预冲洗阶段调用?

最佳答案

属性 hibernate.transaction.flush_before_completion 用于“容器管理事务 (CMT)”或 JTA,如果您使用的是 JDBC 事务,则它不相关。

如果设置为 true,将在事务完成前阶段执行刷新,将所有数据发送到数据库(仍然可以回滚)。此刷新不是由 hibernate session 管理的。

如果设置为 false,则在提交之前执行 hibernate 的自动 session 管理刷新,因此将调用 postFlush。

Hibernate Interceptor 的 postFlush() 方法只会在 hibernate managed Flush 执行之后和事务提交之前被调用。

关于java - Hibernate flush_before_completion 像 post flush 或 pre flush 一样工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13682426/

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