Hibernate 6 Не удалось найти TableGroup (подзапросы)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Hibernate 6 Не удалось найти TableGroup (подзапросы)

Сообщение Anonymous »

Я использую Hibernate 6.6.29.Final и Spring Boot 3.5.6

Я хочу получить запрос типа
(
SELECT LISTAGG(la.case_number, '; ') WITHIN GROUP (ORDER BY la.case_number) AS case_number
FROM (
SELECT DISTINCT la.case_number
FROM law_act_bg la
LEFT JOIN law_act_bg_responsible lr ON lr.r_act_id = la.id AND NVL(lr.flag_no_work, 0) = 0
LEFT JOIN corp_users cu ON cu.cu_cu_id = lr.r_user_id
LEFT JOIN dict d11 ON d11.parent_id = 11 AND d11.code = la.status
WHERE la.r_card_bg_id = lc.id
AND NVL(la.status, 0) 15
AND la.case_number IS NOT NULL
) la
) AS case_number

FROM
law_card_bg lc

но когда я добавляю условие
cb.equal(laCaseInner.get(LawActBgEntity_.rCardBgId), root.get(LawCardBgEntity_.id)),

Я получаю сообщение об ошибке

Не удалось найти TableGroup -entity.LawCardBgEntity(103)
пожалуйста, расскажите мне, как это исправить или есть ли альтернативы для выполнения такого запроса.
полный код
JpaRoot laCaseInner = sqCaseNumberInner.from(LawActBgEntity.class);
sqCaseNumberInner.multiselect(laCaseInner.get(LawActBgEntity_.caseNumber).alias("case_number"))
.where(cb.and(
cb.equal(laCaseInner.get(LawActBgEntity_.rCardBgId), root.get(LawCardBgEntity_.id)),
cb.notEqual(cb.coalesce(laCaseInner.get(LawActBgEntity_.statusCode), cb.literal(0L)), cb.literal(15L)),
cb.isNotNull(laCaseInner.get(LawActBgEntity_.caseNumber))
)).distinct(true);
JpaSubQuery sqCaseNumber = cq.subquery(String.class);
JpaDerivedRoot rootCaseNumber = sqCaseNumber.from(sqCaseNumberInner);
sqCaseNumber.select(cb.listagg(cb.asc(rootCaseNumber), rootCaseNumber.get("case_number"), "; "));
subquery.multiselect(
sqCaseNumber.getSelection().alias("case_number"),
…)


Подробнее здесь: https://stackoverflow.com/questions/798 ... subqueries
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»