Я использую API критериев JPA2.1, где я создал объект результата с использованием конструкции строителя критериев.Как подсчитать результаты из пользовательского объекта с использованием JPA CriteriaQuery
Рассмотрим приведенный ниже образец кода.
CriteriaBuilder cb;//Assume cb is obtained here
CriteriaQuery<Report> cq = cb.createQuery(Report.class);// custom selective Class
Root<Student> root = cq.from(Student.class);
Join<Student, XTable> join1 = root.join("xtable", JoinType.INNER);
Join<Student, YTable> join1 = root.join("ytable", JoinType.INNER);
Ниже приведена основная строка, где я бы выбрал.
cq.select(cb.construct(Report.class,
root.get("name"), join1.get("address_type"), join2.get("country")));
Теперь я хотел бы сделать подсчет на этой конструкции Report
.
Я пробовал считать так.
cq.select(cb.count(cb.construct(......)));
// Failed because count accepts Expression and I tried assigning the cb.construct to Expression which is not working.
Как получить счет?
Добавить более подробную информацию о классах сущностей и их отношений. Расскажите нам о классе 'CandidateReport': в чем его цель? Есть ли таблица db, представляющая его? Какова цель использования 'CriteriaQuery # getRestriction()', поскольку в 'cq' нет предложения' where'? – perissf
Обновленный вопрос. – srk
И почему вы показываете 2 вопроса, когда в вопросе говорится, что вам нужен только запрос на подсчет? – perissf