我正在使用Spring JPA进行数据库访问。我能够找到诸如findByName和countByName之类的示例,对于这些示例,我不必编写任何方法实现。我希望找到一些根据某些条件删除一组记录的示例。
Spring JPA是否支持类似于deleteByName的删除?任何指针表示赞赏。
不建议使用的答案(Spring Data JPA <= 1.6.x):
@Modifying救援的注释。但是,你将需要提供自定义SQL行为。
@Modifying
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)中,查询派生为delete,remove并且count可以访问操作。
delete
remove
count
public interface UserRepository extends CrudRepository<User, Long> { Long countByFirstName(String firstName); Long deleteByFirstName(String firstName); List<User> removeByFirstName(String firstName); }