2017-10-04 107 views
0

我对nHibernate和HQL相当新,但是使用文档我确信可以在select语句中进行子查询。select语句中的HQL子查询

试图执行这个查询:

SELECT DISTINCT a.ID, (SELECT COUNT(accHld.ID) FROM AccountHolder accHld 
    WHERE a.ID = accHld.Account) FROM Account a GROUP BY a.ID 

我获得的是“在SELECT子句HQL功能之前预期‘(’”

我试图在组中添加子查询的功能好了,没有用我不知道是否有人知道我在做什么错

回答

0

你只是不需要一个子查询,但左外连接:

SELECT DISTINCT a.ID, COUNT(accHld.ID) 
FROM Account a 
LEFT OUTER JOIN AccountHolder accHld ON a.ID = accHld.Account 
GROUP BY a.ID 
+0

谢谢您的评论,唯一的问题是,除了账户之外,我还需要加入另一个名为“payments”的类以及账户持有人。我遇到的问题是,它们都映射回Accounts类,所以即使在使用不同的时候,我也会得到重复的信息。无论如何会有这个吗? –

+0

我没有收到它,你想加入账户,付款和AccountHolders来获取哪个表的哪些属性? – Aldeguer

+0

对不起,好吧,我有3个enities。付款,账户持有人和账户。付款和帐户都有一个映射到帐户。使用HQL,使用Account.ID和Payments和AccountHolders中的外键加入两者,并选择数据,返回dublicates。 –