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

JPQL。JPA查询。如何获取命名参数集合的大小,jpa,jpql,Jpa,Jpql,我正在尝试在存储库接口中定义自定义方法 public interface RequestRepository extends JpaRepository<Request, Long> { @Query("SELECT r FROM Request r " + "LEFT JOIN FETCH r.pathParams pp " + "WHERE r.responseCode = :code "

我正在尝试在存储库接口中定义自定义方法

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
        );
public interface RequestRepository扩展了JpaRepository{
@查询(“从请求r中选择r”+
“左连接获取r.pathParams pp”+
“其中r.responseCode=:code”+
“和r.requestMethod=:方法”+
“和r.requestPath=:path”+
“和r.requestBody=:body”+
“和r.apidestails=:apidestails”+
“和(路径参数或r.pathparams中的pp为空)”+
“和大小(r.pathParams)=:pathparamssize”
)
可选FindBydeals(
@参数(“代码”)字符串代码,
@参数(“方法”)请求方法,
@参数(“路径”)字符串路径,
@参数(“主体”)请求主体,
@参数(“apidetails”)apidetails apidetails,
@参数(“路径参数”)设置路径参数,
@Param(“pathparamssize”)整数pathparamssize
);
}

这是可行的,但我相信可以用更好的方式

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

我尝试像“AND SIZE(r.pathParams)=SIZE(:pathParams)”这样做,但它不想使用“SIZE(:pathParams)”

你能给点建议吗

非常感谢