一尘不染

Spring Data:支持“删除依据”吗?

spring

我正在使用Spring JPA进行数据库访问。我能够找到诸如findByName和countByName之类的示例,对于这些示例,我不必编写任何方法实现。我希望找到一些根据某些条件删除一组记录的示例。

Spring JPA是否支持类似于deleteByName的删除?任何指针表示赞赏。


阅读 368

收藏
2020-04-14

共1个答案

一尘不染

不建议使用的答案(Spring Data JPA <= 1.6.x):

@Modifying救援的注释。但是,你将需要提供自定义SQL行为。

public interface UserRepository extends JpaRepository<User, Long> {
    @Modifying
    @Query("delete from User u where u.firstName = ?1")
    void deleteUsersByFirstName(String firstName);
}

更新:

在现代版本的Spring Data JPA(> = 1.7.x)中,查询派生为deleteremove并且count可以访问操作。

public interface UserRepository extends CrudRepository<User, Long> {

    Long countByFirstName(String firstName);

    Long deleteByFirstName(String firstName);

    List<User> removeByFirstName(String firstName);

}
2020-04-14