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

时间:2018-10-04 16:23:40

标签: java spring spring-data-jpa spring-data

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

因此,我无需编写任何逻辑(sql)就可以做到这一点:

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

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

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

1 个答案:

答案 0 :(得分:0)

您希望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);