Spring CrudRepository
提供了一些删除方法,JpaSpecificationExecutor
没有。我想基于Specification
删除 - 就像我正在查询一样。有没有办法做到这一点?
理由:我想确保用户在删除期间拥有资源,而不是允许基于id直接访问资源(参见https://www.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References)。
我看到的选项:
@Query
。像delete from Entity e where e in (select e from Entity e where ...)
这样的东西。这很好用,但我想重新使用其他代码,而不必手动创建查询。答案 0 :(得分:0)
很简单,您可以使用List<YourReturnType> result = yourRepository.findAll(specification);
查询记录,然后使用yourRepository.deleteAll(result);
删除所有这些记录。