java.lang.IllegalArgumentException: 参数绑定的名称不能为 null 或为空
java.lang.IllegalArgumentException: Name for parameter binding must not be null or empty
我目前收到有关我的 jqpl 订购查询的错误:
Name for parameter binding must not be null or empty! On JDKs < 8, you need to use @Param for named parameters, on JDK 8 or better, be sure to compile with -parameters
我是前一种情况,所以我需要使用@Param,但我不确定该怎么做。这是目前关于我的 JPQL 的情况:
@Query("SELECT p FROM DePerson p, DeClass c, DeSchool s" +
"WHERE p.personId = c.id " +
"AND su.schoolId = s.id " +
"ORDER BY :ordering")
Page<DeSiteUser> orderingAll(Page page, String ordering, Pageable pageable);
所以很明显我需要为我试图在排序字符串中传递的值实现@Param。我想要实现的是实现一种排序方法,该方法允许使用以下值:
http://localhost:8080/api/person?sorting=city
要传递到查询中的值城市,然后根据该值对信息进行排序。在这种情况下,我将如何为我现有的 jpql 传递 @Param 以使其能够 1. 工作但 2. 允许订购的能力。谢谢。
如果您使用的 Java 版本高于 8,则必须将其粘贴到设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器:
-parameters
在gradle.build中:
compileJava {
options.compilerArgs << '-parameters'
}
使用@Param("ordering")
@Query("SELECT p FROM DePerson p, DeClass c, DeSchool s" +
"WHERE p.personId = c.id " +
"AND su.schoolId = s.id " +
"ORDER BY :ordering")
Page<DeSiteUser> orderingAll(@Param("ordering") String ordering, Pageable pageable);
我目前收到有关我的 jqpl 订购查询的错误:
Name for parameter binding must not be null or empty! On JDKs < 8, you need to use @Param for named parameters, on JDK 8 or better, be sure to compile with -parameters
我是前一种情况,所以我需要使用@Param,但我不确定该怎么做。这是目前关于我的 JPQL 的情况:
@Query("SELECT p FROM DePerson p, DeClass c, DeSchool s" +
"WHERE p.personId = c.id " +
"AND su.schoolId = s.id " +
"ORDER BY :ordering")
Page<DeSiteUser> orderingAll(Page page, String ordering, Pageable pageable);
所以很明显我需要为我试图在排序字符串中传递的值实现@Param。我想要实现的是实现一种排序方法,该方法允许使用以下值:
http://localhost:8080/api/person?sorting=city
要传递到查询中的值城市,然后根据该值对信息进行排序。在这种情况下,我将如何为我现有的 jpql 传递 @Param 以使其能够 1. 工作但 2. 允许订购的能力。谢谢。
如果您使用的 Java 版本高于 8,则必须将其粘贴到设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器:
-parameters
在gradle.build中:
compileJava {
options.compilerArgs << '-parameters'
}
使用@Param("ordering")
@Query("SELECT p FROM DePerson p, DeClass c, DeSchool s" +
"WHERE p.personId = c.id " +
"AND su.schoolId = s.id " +
"ORDER BY :ordering")
Page<DeSiteUser> orderingAll(@Param("ordering") String ordering, Pageable pageable);