Как написать sub join в HQL - PullRequest
0 голосов
/ 12 марта 2019

Я новичок в hibernate и HQL, хочу преобразовать этот sql в HQL-запрос невозможно конвертировать Sub Join с помощью sub select в HQL в hibernate

     SELECT  m.ID, SUM(CASE WHEN pl.IN_OUT = 1
                       THEN pl.INP
                  ELSE 0 END + 
                  CASE WHEN MRL.IN_OUT = 1
                       THEN MRL.INP
                  ELSE 0 END +
                  CASE WHEN sl.IN_OUT = 1
                       THEN sl.INP
                  ELSE 0 END) INP

FROM   MATERIAL                      AS m
      LEFT JOIN (SELECT pl1.MATERIAL_ID, 
                   pl1.IN_OUT, 
                   pl1.WAREHOUSE_ID,
                   SUM(CASE WHEN PL1.IN_OUT = 1 THEN PL1.QUANTITY ELSE 0 END) 
        INP, 
                   SUM(CASE WHEN PL1.IN_OUT = 2 THEN PL1.QUANTITY ELSE 0 END) 
          OUTP 
            FROM PURCHASE_LINE pl1
            GROUP BY pl1.MATERIAL_ID, pl1.IN_OUT, pl1.WAREHOUSE_ID
      ) as pl ON PL.MATERIAL_ID = M.ID AND PL.WAREHOUSE_ID = W.ID

     WHERE m.ID = 273607     
  GROUP BY m.ID

1 Ответ

0 голосов
/ 14 марта 2019

HQL и JPQL не поддерживают производные таблицы. Вы можете преобразовать свою производную таблицу в несколько коррелированных подзапросов, но я думаю, что вам будет лучше написать собственный SQL-запрос.

...