【问题标题】:EntityManger flushmode in JDBCJDBC 中的 EntityManager 刷新模式
【发布时间】:2012-04-19 16:19:13
【问题描述】:

JPA 本质上是 JDBC 的更高抽象。 EntityManager 有一个 API setAutoFlushMode。它可以设置为 AUTO 或 COMMIT。用 JDBC 术语来说,这个等价物是什么? 谢谢

【问题讨论】:

    标签: jpa flush autoflush


    【解决方案1】:

    JDBC 也具有自动提交功能。

    它们都用于配置库是否应自动提交到数据库。

    JDBC 的自动提交非常简单,它会立即将每次更新提交到数据库。如果没有自动提交,则在调用 commit 方法之前不会提交更改。

    JPA AUTO 会在执行查询之前刷新数据库。像 find 这样的简单操作不需要刷新,因为库可以处理搜索,但是查询会复杂得多,因此如果设置了 AUTO,它将首先刷新它。如果模式设置为 COMMIT,它只会在调用 commit 或 flush 时刷新对数据库的更改。如果设置了 COMMIT 并运行查询,则不会返回尚未刷新的结果。

    【讨论】:

    • 谢谢。当 JPA 设置为自动刷新到数据库时,是否提交了事务?为什么 find 与查询有任何不同?
    • 不,事务没有提交。 “find”只是一类查询的常用词,例如:“findById”。
    猜你喜欢
    • 2011-08-15
    • 2011-01-05
    • 1970-01-01
    • 2017-08-17
    • 2013-02-11
    • 2011-04-29
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多