나는 APInvoice
클래스의 콜렉션과 유일한 Name
을 가진 APVendor
클래스를 가지고있다; 각 APInvoice
에는 APPayment
클래스 모음이 있습니다. 각각의 APPayment
개체는 정확히 BankAccount
클래스, ClearedDate
, Amount
및 CheckNumber
속성을 참조합니다.효율적인 NHibernate Criteria 질의
, $ 1000.00의 양, 1111을 확인의 푸 당좌 예금 계좌의 내 은행을 가정 해 봅시다, 내가 지불 내 지속 된 레이어에 있는지보고 싶어 APPayment
개체의 ClearedDate
속성을 표시합니다.
공급 업체를 쿼리 한 다음 공급 업체의 송장을 쿼리 한 다음 BankAccount
에 대해 작성된 수표 번호를 찾고이 방법을 사용할 수 있습니다. 그러나이 방법을 Criteria
쿼리로 작성하는 것이 훨씬 효율적입니다.
누군가가 어떻게 보일 수 있습니까?
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
기준 쿼리 :
이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 = ????
정확히 무엇을 찾으십니까? 주어진 CheckNumber와 주어진 금액을 가진 APPayment? 다른 제한 사항이 있습니까? 귀하의 질의어를 영어로 표현하면 HQL 질의가 뒤 따른다. –
@JBNizet, 나는 내가 원하는 것을 SQL로 표현했다 ... 영어보다 설명하기가 더 쉽다. 그것은 의미가 있습니까? –