本文主要是介绍解决JPA中使用@Query注解无法使用limit分页函数__一蓑烟雨任平生,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
项目中有使用到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
这篇关于解决JPA中使用@Query注解无法使用limit分页函数__一蓑烟雨任平生的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!