因此,简而言之:是否可以将参数设置为"默认值:全部"或更一般地说,在Spring Data JPA(可能是@ Query-Annotated)存储库方法中的默认特定值?
我aware可以在(Rest)控制器中设置默认值,我只是好奇它是否可以在存储库中执行此操作 - 也是。我认为可能是一个很好的功能,对于"给我一些过滤的resultSet,其中过滤器可能没有在前端设置过休息调用"是一个非常常见的用例。
实施例的查询:
@Query("select new com.my.dto(e.name, e.age, e.address)" +
" from Entity e" +
"where e.name like ?1 " +
"and e.age like ?2 " +
"and e.street like ?3")
List<Item> findItemsFiltered(String name, String age, String street);
所以当我们说没有设置街道时,存储库应该使用&#34;%&#34;返回其他标准匹配但街道不相关的所有结果。
答案 0 :(得分:0)
如何在@Query
本身进行此操作?
类似的东西:
@Query("select new com.my.dto(e.name, e.age, e.address)" +
" from Entity e" +
"where e.name like ?1 " +
"and e.age like ?2 " +
"and e.street like (CASE WHEN ?3 IS NULL THEN '%' ELSE ?3 END)")
List<Item> findItemsFiltered(String name, String age, String street);
另一种方法是拥有一个自定义参数注释,如@Default
,但这需要自定义我相信的存储库实现。
另一个替代方案是M. Deinum提到的Specification
。