使用jpa的注解@Query 进行分页查询

参考文章:使用jpa的注解@Query 进行分页查询

jpa本身自带分页方法:

repository.findAll(example,Pageable); 

如果要使用复杂条件查询,需要自己写SQL/HQL。

在@Query中使用分页查询方法如下:

/**
 * 分页查询功能
 */
@Query("select t.id, t.taskName, t.subTaskName, t.createDate, t.endDate, t.errorMsg, "
		+ "t.publishStatus, t.taskStage from TaskInfo t where t.delete=false and t.userId=?1")
List<TaskInfo> getTaskListByPage(Integer userId, Pageable pageable);

没错,直接传jpa自带的实体类Pageable,并设置参数即可,JPA会自动识别并解析分页SQL,如此来看,JPA还是考虑得挺周全的。
java调用

public JSONObject search(int userId, int page, int size) {
	Sort sort = new Sort(Sort.Direction.DESC, "taskId");

	// 分页查询
	Pageable pageable = PageRequest.of(page, size, sort);
	// Page<TaskInfo> sd = taskInfoRepo.findAll(pageable);
	List<TaskInfo> taskInfoList = taskInfoRepo.getTaskListByPage(userId, pageable);

	json.put("list", taskInfoList);
	json.put("result", true);

	return json;
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风情客家__

原创不易,觉得好的话给个打赏哈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值