ID匹配给定列表的Spring批量更新字段

时间:2019-05-17 10:25:57

标签: sql spring spring-boot spring-data-jpa

我需要根据提供的id在数据库中进行多次更新。现在我正在遍历id列表并一次又一次调用存储库的update函数,但这效率不高。我想知道是否存在这是我可以通过将id列表和另一个新字段值列表作为参数传递来在一个rest调用中进行批量更新的一种方法。在此先感谢您的帮助。

现在我一次又一次调用此方法以更新值。但是,这根本没有效率:

 @Transactional
    @Modifying
    @Query("UPDATE Student c SET c.rollNo= :rollNo WHERE c.id = :id")
    void updateStudentRollNo(@Param("id") long id, @Param("rollNo") String rollNo);

1 个答案:

答案 0 :(得分:0)

如果您有Student实体,您在其中调用方法updateStudentRollNo,则可以调用repository.saveAll(students),这将在列表上进行更新。您尝试做的方法是不可能的,因为每个学生都有不同的rollNo,因此无法进行这样的批量更新。