关闭

jap 复合查询

249人阅读 评论(0) 收藏 举报
分类:
     @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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:148176次
    • 积分:1988
    • 等级:
    • 排名:第19803名
    • 原创:24篇
    • 转载:241篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论