我想知道是否有办法执行除使用merge()方法之外的更新,在很多情况下我只需要更新数据库上的单个字段,并且要做到这一点我必须带来来自db的整个对象及其所有关系,设置新的新值,然后调用merge方法传递修改后的对象。它工作正常,但它会导致一些性能问题,因为我必须在更新之前不必要地从数据库中带来一些数据。我认为,最好只执行更新而不将任何数据带入内存。
有没有人已经考虑过它并提出了另一种更有效的方法呢?
答案 0 :(得分:0)
只需做一个"原生查询"使用UPDATE,或使用JPQL UPDATE(根据uaiHebert评论)。它可以影响多个记录。它附带的条件是不会调用任何事件处理程序,并且内存中已有的任何实例都不会自动更新,只会更新数据存储区。见http://www.datanucleus.org/products/accessplatform_4_0/jpa/jpql.html#update-syntax