【问题标题】:Which FlushMode in Hibernate commits when you call session.flush()?当您调用 session.flush() 时,Hibernate 中的哪个 FlushMode 提交?
【发布时间】:2023-03-26 05:13:01
【问题描述】:

我读到是否调用session.flush() 取决于设置的FlushMode。但是,我不知道是哪个FlushMode 这样做的。我希望会话被刷新并提交。我应该使用哪种 FlushMode?​​p>

【问题讨论】:

    标签: java hibernate commit


    【解决方案1】:

    情况正好相反。您可以在调用提交时刷新。这些是 Hibernate 中的刷新模式:FlushModes

    总是

    Session 在每次查询之前被刷新。

    自动

    有时会在查询执行之前刷新会话,以确保查询永远不会返回过时状态。

    提交

    调用 Transaction.commit() 时,Session 被刷新。

    手册

    只有在应用程序显式调用 Session.flush() 时才会刷新 Session。


    我认为您正在寻找 AUTO。所以会话在提交时刷新

    【讨论】:

    • 出于this 的目的,我需要此信息。我使用 FlushMode 对吗?
    • 其实我不知道在没有事先刷新的情况下提交是否真的有意义。那么当您使用手动刷新模式 commit() 时应该发生什么?
    • AUTO 是 Fl​​ushMode 的默认值。
    【解决方案2】:

    反之亦然 - Hibernate 在提交时是否刷新取决于FlushMode

    【讨论】:

    • 好的,那么哪个 FlushMode 可以同时使用?
    猜你喜欢
    • 2014-02-19
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2014-08-14
    • 1970-01-01
    • 2015-07-24
    • 2011-03-17
    相关资源
    最近更新 更多