这是我的存储库
public interface OperateLogRepository extends JpaRepository<OperateLog, Long> {
Page<OperateLog> findByBelongTypeAndBelongId(Integer belongType, Long belongId, Pageable pageable);
}
这是我的服务
public PageResp<OperateLogResp> findOperateLog(UserWrapper userWrapper, PageReq pageReq) {
Page<OperateLog> pageResult = logRepository
.findByBelongTypeAndBelongId(userWrapper.getBelongTypeCode(), userWrapper.getBelongId(),
new PageRequest(pageReq.getPage() - 1, pageReq.getSize(), Direction.DESC, "id"));
return PageResp.from(pageResult.map(OperateLogResp::from), pageReq);
}
但是,我无法从此查询中获得任何结果。
我尝试打印sql,像这样的sql:
selectas [all fields] from t_operate_log operatelog0_ where
operatelog0_.f_belong_type=? and operatelog0_.f_belong_id=? order by operatelog0_.f_id desc limit ?
sql 对我有用,
但是,hibernate绑定参数:
binding parameter [1] as [INTEGER] - [2]
binding parameter [2] as [BIGINT] - [1]
缺少限制的第三个参数。
请帮帮我。
答案 0 :(得分:0)
您必须使用Pageable而不是PageRequest:
刚
Pageable p = new PageRequest(pageReq.getPage() - 1, pageReq.getSize(), Direction.DESC, "id");
然后
Page<OperateLog> pageResult = logRepository
.findByBelongTypeAndBelongId(userWrapper.getBelongTypeCode(), userWrapper.getBelongId(), p);