2012-07-08 58 views
0

以下查詢我有這樣如何實現在休眠

SELECT 
    tableA.field1, 
    SUM(tableB.field4) AS the_sum 
FROM 
    tableA 
    LEFT JOIN tableB ON tableA.field1 = tableB.field2 
WHERE 
    /* IN() for multiple possible vals. Use = if only 1 val needed 
    and then the GROUP BY is unnecessary */ 
    tableA.field1 IN ('val1','val2',val3') 
GROUP BY tableA.field1 

查詢如何實現在休眠以下查詢?還需要返回值作爲對應表的對象。可能嗎?

回答

0

該查詢將是幾乎相同:

select a.field1, sum(b.field4) as the_sum 
from EntityA a left join a.b 
where a.field1 in ('val1', 'val2', 'val3') 
group by a.field1 

這是假設存在從EntityA到EntityB使用a.field1作爲外鍵到b.field2(或反之亦然)的關聯。如果你沒有這樣的聯繫,那是不可能的。只有關聯纔有可能左連接。