我正在运行一个hql,它有一个正确的连接:
select sum(banks.money) from banks right join banks.account where banks.account = :account and (banks.date < :date or banks.date is null) group by banks.account, banks.date
hibernate将其翻译成这样:
select sum(banks.money) from banks right join accounts on banks.account_id = accounts.account_id where banks.account_id = someId and (banks.date < someDate or banks.date is null) ....
我希望hibernate从accounts表中获取account_id字段(在这里我可以拥有一个不在banks表中的帐户),而不是从banks表中获取。
有没有办法显式地告诉hibernate在连接表的哪一列上执行?
发布于 2012-09-26 23:18:49
格式设置有帮助...不管怎样..。
select sum(banks.money)
from banks
right join banks.account acct
where acct = :account
and (banks.date < :date or banks.date is null)
group by banks.account, banks.date
不过就我个人而言,我会将其添加到连接条件中:
select sum(banks.money)
from banks
right join banks.account acct
with acct.id = :accountId
where banks.date < :date
or banks.date is null
group by banks.account, banks.date
在这两种情况下,请特别注意为连接的关联指定的别名及其作为限定符的用法
https://stackoverflow.com/questions/12604406
复制相似问题