Когда я проверил код ниже, я получил количество всех записей.не условие мудрое.
CriteriaBuilder builder = getCurrentSession().getCriteriaBuilder();
CriteriaQuery<Long> countQuery = builder.createQuery(Long.class);
countQuery.select(builder.count(countQuery.from(ViewEmployees.class)));
Long q1 = getCurrentSession().createQuery(countQuery).getSingleResult();
Я хочу получить счет с условием критерия.как этот код
CriteriaQuery<ViewEmployees> query = builder.createQuery(ViewEmployees.class);
Root<ViewEmployees> root = query.from(ViewEmployees.class);
List<Predicate> predicates = new ArrayList<Predicate>();
// Equal Query
if (StringUtils.isNotBlank(searchConditions.getCode())) {
predicates.add(builder.and(builder.equal(root.get("code"), searchConditions.getCode())));
}
Более старая версия Hibernate, в которой он работал с кодом ниже.
Criteria criteria = getApplicationEventConditions(searchCond);
SearchTotals searchTotals = new SearchTotals();
ProjectionList p1 = Projections.projectionList();
p1.add(Projections.rowCount());
criteria.setProjection(p1);
List l = criteria.list();
searchTotals.setTotalSize((Long) l.get(0));
Можете ли вы помочь мне решить эту проблему с помощью CriteriaBuilder.