我当前收到有关订购的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
要传递到查询中的值city,然后根据该值对信息进行排序。在这种情况下,我将如何为我现有的jpql传入@param以将其启用为1。只工作2分钟。允许订购。谢谢您。
2条答案
按热度按时间dced5bon1#
使用
@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 orderingAll(@Param("ordering") String ordering, Pageable pageable);
oyjwcjzk2#
如果您使用的java版本高于8,则必须将其粘贴到“设置”->“构建、执行、部署”->“编译器”->“java编译器”中:
在gradle.build中: