2012-07-08 85 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(或反之亦然)的关联。如果你没有这样的联系,那是不可能的。只有关联才有可能左连接。