CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Task> cq = cb.createQuery(Task.class);
Root<Task> root = cq.from(Task.class);
Join<Task, Attachment> atts = root.join("attachments", JoinType.LEFT);
ParameterExpression locNameKey = cb.parameter(String.class, "ttlocname");
Expression taskTypeLocName = cb.function("json_extract_path_text", String.class, root.get("taskType").get("locName"), locNameKey);
taskTypeLocName.alias("ttlocname");
cq.select(cb.construct(
Task.class,
root.get("id"),
taskTypeLocName,
cb.count(atts)));
cq.groupBy(root, root.get("taskType").get("name"), taskTypeLocName);
TypedQuery<Task> query = em.createQuery(cq);
query.setParameter("ttlocname", "RU");
В select не применяет alias к функции json_extract_path_text. В group by использует json_extract_path_text(t1.loc_name, ?)
Что сделать что бы применялся alias в select "json_extract_path_text(t1.loc_name, ?) ttlocname " и в group by использовался ttlocname ?
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Не работает подключение БД с сервлетомПомогите понять в чем проблема
ArrayList состоит из объектов, каждый из которых имеет температуру и времяНеобходимо найти максимальное значение температуры за каждый день