JPAで特定の項目だけ更新する方法

JPAで特定の項目だけ更新する方法を紹介します。

経緯

大量データを更新する時に、save()メソッドを実行するとすごく時間がかかった。(13分くらい)

更新したい項目は1つだったので、特定の更新項目だけ更新すれば早くなるのではないかと思い、下記の方法を試してみました。

結果はまだでていませんが、早くなったらまた共有します。

@Repository
public interface OrderRepository extends JpaRepository<Order, Long>
{
    @Modifying
    @Query("update Order o set o.item = :itemName where o.date < :orderedDate")
    int SetItemBefore(@Param("orderedDate")Date date, @Param("itemName")String newItemName);
}

参考サイト

参考にさせていただきました。ありがとうございます。

comments powered by Disqus