private Specification<MeetingManage> getSpecification(final MeetingManage queryModel) { return new Specification<MeetingManage>() { @Override public Predicate toPredicate(Root<MeetingManage> root, CriteriaQuery<?> query, CriteriaBuilder cb) { List<Predicate> list = new ArrayList<Predicate>(); if (StringUtils.isNotBlank(queryModel.getMeetingId())) { String[] ids = queryModel.getMeetingId().split(","); CriteriaBuilder.In<String> in = cb.in(root.get("meetingId").as(String.class)); for (String st : ids) { in.value(st); } list.add(in); } list.add(cb.equal(root.get("isVal").as(String.class), "Y")); Predicate[] p = new Predicate[list.size()]; return cb.and(list.toArray(p)); } }; }
时间: 2024-02-14 17:34:14 浏览: 123
这段代码使用了 JPA 的 Criteria API 实现了一个动态查询,根据传入的 MeetingManage 对象生成查询条件。查询条件包括两个部分:一个是根据 MeetingManage 中的 meetingId 属性生成的 in 查询,另一个是根据 MeetingManage 中的 isVal 属性生成的 equal 查询。最后使用 and 进行连接,生成最终的查询条件,并返回 Predicate 对象。
阅读全文