重写HQL以将右连接转换为左连接

时间:2011-01-25 09:21:10

标签: hibernate hql outer-join

我有以下对象模型:

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中,你只能通过对象模型进行外连接。

有人可以建议我如何使用左连接而不是右连接重写上面的内容吗?

0 个答案:

没有答案