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 ...)
.这工作正常,但我想重用其他代码而不必手动创建查询。 最佳答案
它的简单你可以使用 List<YourReturnType> result = yourRepository.findAll(specification);
查询您的记录,然后使用 yourRepository.deleteAll(result);
删除所有这些记录。
关于java - Spring Repository 删除规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35303043/