HQL을 사용한 서브 쿼리에 대한 지원이 부족하다는 점을 읽었습니다.하지만 어쨌든이 SQL 쿼리를 HQL로 구현할 수 있는지 알려주시겠습니까?서브 쿼리가있는 SQL에서 HQL까지
나는 이미 내가 옳은 길에있어 경우
SQL (작업) ...
SELECT
foo.id as fooId,
foo.name AS fooName,
chan.name AS chanName,
(SELECT DISTINCT
foo_lang.VALUE
FROM
foo_lang
WHERE
foo_lang.foo_id = fooId AND
foo_lang.lang_id = 1) as EN
FROM
foo
INNER JOIN chan ON foo.chan_id = chan.id
HQL을 (모르는 ... 몇 가지 테스트를하지만 성공을했습니다) 작동하지
select new
Map(o.id as id,
o.name as fooName,
c.name as chanName,
(select fl.value from foo_lang fl where fl.id.fId = id and fl.id.lId = 1) as EN)
from
foo o
left join o.chan c
이 제공하십시오 binar의 왼쪽과 오른쪽 측면 :
org.hibernate.TypeMismatchException을 y 논리 연산자가 호환되지 않음 [big_decimal : component [lId, rId]
서브 쿼리 또는 다른 것에 관한 것입니까?
미리 감사드립니다.
내가이 열린 괄호하지만, 단 하나 명의 가까이를 참조하십시오 당신이 foo_lang이 같은 foo는, 에 가입하면 AFAIK, 논리적으로는 동일합니다. 그것을 고쳐서 시도 했습니까? – Genius
감사합니다. 닫는 대괄호가 추가되었지만 문제가 지속됩니다. – foxtrot
또 하나의 질문 :이 표현식에서 fooId는 무엇입니까? foo_lang.foo_id = fooId AND. 하위 쿼리가 둘 이상의 행을 반환하면 어떻게됩니까? 가능한가? – Genius