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

JPQL JPA查询如何获取命名参数集合的大小

如何解决JPQL JPA查询如何获取命名参数集合的大小

我正在尝试在存储库界面中定义自定义方法

public interface RequestRepository extends JpaRepository<Request,Long> {

@Query("SELECT r FROM Request r " +
        "LEFT JOIN FETCH r.pathParams pp " +
        "WHERE r.responseCode = :code " + 
        "AND r.requestMethod = :method " +
        "AND r.requestPath = :path " +
        "AND r.requestBody = :body " +
        "AND r.apiDetails = :apidetails " +
        "AND (pp IN :pathparams OR r.pathParams IS EMPTY) " + 
        "AND SIZE(r.pathParams) = :pathparamssize " 
        )
Optional<Request> findByDetails(
        @Param("code") String code,@Param("method") RequestMethod method,@Param("path") String path,@Param("body") RequestBody body,@Param("apidetails") ApiDetails apidetails,@Param("pathparams") Set<PathParam> pathparams,@Param("pathparamssize") Integer pathparamssize
        );

}

它可以工作,但我相信可以用更好的方法完成

如您所见,我声明了冗余参数“ pathparamssize”(IMO)

我试图这样做,例如“ AND SIZE(r.pathParams)= SIZE(:pathparams)”,但它不想与“ SIZE(:pathparams)”一起使用

你能建议点什么吗?

非常感谢

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