[英]Efficient complex NHibernate Criteria query
我有一個APVendor
類,它具有集合APInvoice
類和獨特的Name
; 每個APInvoice
都有一組APPayment
類。 每個APPayment
對象都精確地引用一個BankAccount
類,一個ClearedDate
,一個Amount
和一個CheckNumber
屬性。
對於具有支票記錄的銀行對帳單,假設我的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 = ????
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用於此類靜態查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.