spring jpa 中原生 sql 查询无法使用分页怎么办?如果把 desc/esc 当参数传到 原生 sql 中也不行(无法识别)不能使用的分页查询。如果使用的是hql语句查询的话,里面的要查询的字段和where里面的字段都应该是对应的实体类里的属性,如果使用sql查询数据表的话,里面要查询的字段和where条件里的字段都应该是数据表里的字段,原生sql语句需要加上 nativeQuery = true
报错的语句
@Query(value = "SELECT * FROM rocket.rocket_exist_item e WHERE e.user_nick = :userNick " +
"AND e.create_time < date_sub(now(), INTERVAL :timeOutDay DAY) ", nativeQuery = true)
List<ExistItem> findTimeOutItems(@Param("userNick") String userNick, @Param("timeOutDay") int timeOutDay, Pageable pageable);
解决办法 加上ORDER BY ?#{#pageable}
@Query(value = "SELECT * FROM rocket.rocket_exist_item e WHERE e.user_nick = :userNick " +
"AND e.create_time < date_sub(now(), INTERVAL :timeOutDay DAY) ORDER BY ?#{#pageable}", nativeQuery = true)
List<ExistItem> findTimeOutItems(@Param("userNick") String userNick, @Param("timeOutDay") int timeOutDay, Pageable pageable);