spring data jpa 不定条件查询

@Override
public Page<Document> searchSendDocument(Long sendUserId, Long sendGroupId,String title,
String content, Date stDate, Date spDate, int pageNum,
int numPerPage) {

final String titl1F = title;
final String contentF = content;
final Date stDateF = stDate;
final Date spDateF = spDate;
final Long sendUserIdF = sendUserId;
final Long sendGroupIdF = sendGroupId;
Sort sort = new Sort(Direction.DESC, "id");
Pageable pageRequest = new PageRequest(pageNum - 1, numPerPage, sort);

Specification<Document> spec = new Specification<Document>() {
@Override
public Predicate toPredicate(Root<Document> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {

List<Predicate> predicate = new ArrayList<>();
if (titl1F != null && titl1F.trim().length() > 0) {
predicate.add(cb.like(root.get("title").as(String.class),
"%" + titl1F.trim() + "%"));
}
if (contentF != null && contentF.trim().length() > 0) {
predicate.add(cb.like(root.get("message").as(String.class),
"%" + contentF.trim() + "%"));
}
if (sendUserIdF != SearchEnum.SEARCH_ALL.getId()) {
predicate.add(cb.equal(root.get("userId").as(Long.class),
sendUserIdF));
}
predicate.add(cb.equal(root.get("isState").as(Integer.class),
DocumentEnum.VIEW.getCode()));
predicate.add(cb.equal(root.get("groupId").as(Long.class),
sendGroupIdF));

predicate.add(cb.between(root.get("sendDate").as(Date.class),
stDateF, spDateF));
Predicate[] pre = new Predicate[predicate.size()];
return query.where(predicate.toArray(pre)).getRestriction();
}
};

return documentDao.findAll(spec, pageRequest);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值