批量更新 Spring JPA 存储库 (Java)



在春天,我可以通过定义"查询方法作为函数名称"来定义搜索和删除操作

所以我可以在不编写任何逻辑(sql(的情况下做到这一点:

List<Person> findByLastName(@Param("name") String name);
List<Person> deleteByLastName(@Param("name") String name);

但是如何在不编写 sql 的情况下批量更新条目呢?这不起作用:

List<Person> updateByLastName(@Param("name") String name);

你期望 updateByLastName 做什么?将每个姓氏更新为名称?只是没有足够的信息让Spring弄清楚。您需要在此处使用 JPQL。

@Transactional
@Modifying
@Query( "UPDATE Person p" +
" SET p.age = :age " +
" WHERE p.lastName = :lastName" )
List<Person> updateByLastName(@Param("age") int age, @Param("lastName") String lastName);

最新更新