项目中有使用到Spring Data JPA来做查询,在某个查询中,想用limit函数分页,如下:
@Transactional
@Query(value = "select a.id ,a.even,a.createat,a.iot,a.reada from alarm a where a.adminid=:userId ORDER BY a.createat DESC Limit :num,10")
List
<Alarm
> findByUserId
(@Param("userId") int userId
, @Param("num") int num
);
这里的Limit报错了,红色XX
经过百度发现,Spring Data JPA写的SQL叫JPQL,不是SQL不支持Limit函数。
解决如下:
在注解内增加参数nativeQuery,当加入nativeQuery参数时,@Query内的SQL是按原生SQL写法来写,limit函数生效,不加入nativeQuery参数则是JPQL,limit函数不生效。
@Transactional
@Query(nativeQuery
= true, value = "select a.id ,a.even,a.createat,a.iot,a.reada from alarm a where a.adminid=:userId ORDER BY a.createat DESC Limit :num,10")
List
<Alarm
> findByUserId
(@Param("userId") int userId
, @Param("num") int num
);
正常了,可以运行了
随手记录下一个小坑,NNNNNNN
转载请注明原文地址:https://ipadbbs.8miu.com/read-24536.html