【问题标题】:Alternatives to EntityManager's merge() methodEntityManager 的 merge() 方法的替代方案
【发布时间】:2014-10-28 12:04:17
【问题描述】:

我想知道除了使用 merge() 方法之外是否还有其他方法可以执行更新,在很多情况下我只需要更新数据库中的单个字段,而我必须携带来自数据库的整个对象及其所有关系,设置新的新值,然后调用合并方法传递修改后的对象。它工作正常,但它会导致一些性能问题,因为我必须在更新之前不必要地从数据库中获取一些数据。在我看来,最好只执行更新而不将任何数据带入内存。

有没有人已经考虑过并想出了另一种更有效的方法来做到这一点?

【问题讨论】:

    标签: jpa eclipselink entitymanager


    【解决方案1】:

    只需使用 UPDATE 执行“本机查询”,或使用 JPQL UPDATE(根据 uaiHebert 评论)。它可以影响多条记录。它附带的条件是不调用任何事件处理程序,并且任何已经在内存中的实例都不会自动更新,只会自动更新数据存储区。见http://www.datanucleus.org/products/accessplatform_4_0/jpa/jpql.html#update-syntax

    【讨论】:

    • 您也可以使用 JPQL 进行更新。 [=
    猜你喜欢
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多