是否可以在一个存储库方法中同时使用@Query
注释和规范?例如,我想要一个像这样的方法:
@Query(value="SELECT e from EMPLOYEE where firstName <> ?1")
public Page<Employee> findEmployeeBySomethigFancy(String firstName, Pageable pageable, Specification<Employee> emp);
是否可以或应该将整个查询构建为Predicate
并删除@Query
注释?
答案 0 :(得分:14)
首先,您可能需要先阅读此blog post。其次,根据您的存储库应该实现的JpaSpecificationExecutor接口,您可以使用规范运行以下查询:
所以你需要不能混合@Query(或查询方法)和规范。
你可以表达这个条件:
firstName <> ?1
使用规范代替。然后,您可以根据需要组合多个规格。