0

我有一个APVendor类,它有一个类的集合APInvoice和一个独特的Name; 每个APInvoice都有一个APPayment类的集合。每个APPayment对象只引用一个BankAccount类、a ClearedDate、anAmount和一个CheckNumber属性。

使用具有支票记录的银行对帐单,假设我的Bank of Foo支票账户,支票1111,金额为$1000.00,我想查看我的持久层中是否存在付款,并标记APPayment对象的ClearedDate属性。

BankAccount我可以通过查询供应商,然后查询供应商的发票,然后查找针对Criteria.

有人可以帮我看看应该怎么看吗?以下是我将如何在 SQL 中编写查询以获取我需要使用的对象图:

select p.*, i.*, v.*
from appayments p
join bankaccounts a on p.bankaccountid = a.bankaccountid
join apinvoices i on i.invoiceid = p.invoiceid
join apvendors v on v.vendorid = i.vendorid
where a.bankaccountid = ????
and p.checknumber = ????
4

1 回答 1

1

HQL 查询与 SQL 查询非常相似:

select payment from APPayment payment
inner join payment.BankAccount bankAccount
left join fetch payment.Invoice invoice
left join fetch invoice.Vendor vendor
where bankAccount.id = :accountId
and payment.checkNumber = :checkNumber

Criteria 查询留作练习,但我没有看到使用 Criteria 进行此类静态查询的要点。

于 2012-06-20T17:35:56.563 回答