0
点赞
收藏
分享

微信扫一扫

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 条评论