Hibernate 6 Could not locate TableGroup (subqueries)

4 days ago 7
ARTICLE AD BOX

I use hibernate 6.6.29.Final and spring boot 3.5.6
I want to get a query like

( 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

but when I add the condition

cb.equal(laCaseInner.get(LawActBgEntity_.rCardBgId), root.get(LawCardBgEntity_.id)),

I get an error
Could not locate TableGroup - entity.LawCardBgEntity(103)

please tell me how to fix this or if there are any alternatives for making such a query.

full code

JpaRoot<LawActBgEntity> 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<String> sqCaseNumber = cq.subquery(String.class); JpaDerivedRoot<Tuple> rootCaseNumber = sqCaseNumber.from(sqCaseNumberInner); sqCaseNumber.select(cb.listagg(cb.asc(rootCaseNumber), rootCaseNumber.get("case_number"), "; ")); subquery.multiselect( sqCaseNumber.getSelection().alias("case_number"), …)
Read Entire Article