目前,我在订购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.进行订购。谢谢。
采用 @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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句