我有以下对象模型:
Account
AccountTransaction
has many-to-one to Account
PaymentSchedulePayment
has many-to-one to AccountTransaction
PaymentSchedulePeriod
has many-to-one to Account
我想要一些HQL
会在给定日期找到PaymentSchedulePeriod
个活跃的PaymentSchedulePayment
,并且每个人都会找到与同一帐户关联的最新select p.id, a.id, max( pay.accountTransaction.dttm )
from PaymentSchedulePayment pay right join pay.accountTransaction.account a,
PaymentSchedulePeriod p
where p.account = a
and p.fromDttm <= :date and p.toDttm > :date
group by p.id, a.id
。因此外部联接可能没有付款。
我的查询工作正常:
HQL
然而,从this question我之前遇到麻烦,因为联接的排序优先级已在接受的答案中解释。其中一条评论是为了避免这样的问题,我应该使用左外连接而不是右边但是我不确定如何将我的from Account left join ... PaymentSchedulePayment
重写为
{{1}}
我的,可能不完整的理解是,在HQL中,你只能通过对象模型进行外连接。
有人可以建议我如何使用左连接而不是右连接重写上面的内容吗?