微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Spring Data JPA Repositories:是否可以给params一个默认的Value / default all?

因此,简而言之:是否可以将参数设置为“default:All”或更一般地设置为Spring Data JPA(可能是@ Query-Annotated)存储库方法中的认特定值?

我在aware中可以在(Rest)控制器中设置认值,我只是好奇它是否可以在Repository-Level中进行.我认为可能是一个很好的功能,因为“给我一些过滤的resultSet,其中过滤器可能没有在前端通过rest-call设置”是一个非常常见的用例.

例如查询

@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

所以当我们说没有设置street时,存储库应该使用“%”来返回其他条件匹配但街道不相关的所有结果.

最佳答案
怎么样在@Query本身呢?
就像是:

@Query("select new com.my.dto(e.name,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

另一种方法是使用像@Default这样的自定义参数注释,但这需要自定义存储库实现本身.

另一种替代方案是M. Deinum提到的规范.

原文地址:https://www.jb51.cc/spring/432115.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐