0

У меня есть класс APVendor, который имеет коллекцию классов APInvoice и уникальный Name; каждый APInvoice имеет коллекцию классов APPayment. Каждый объект APPayment ссылается только на один класс BankAccount, a ClearedDate, a Amount и CheckNumber.Эффективный комплекс NHIBernate Критерии запроса

С банковского счета, который имеет контрольный показатель, скажем, мой банк Foo проверки счета, проверить , на сумму $ 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 = ???? 
+0

Что именно вы ищете? APPayment, который имеет данный контрольный номер и заданную сумму? Любые другие ограничения? Попробуйте выразить свой запрос на английском языке, и последует запрос HQL. –

+0

@JBNizet, я выразил то, что хочу в SQL ... кажется, проще объяснить, чем английский. Имеет ли это смысл? –

ответ

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 

критериям запроса остается как упражнение, но я не вижу, как poin tin использует Criteria для такого статического запроса.

+0

Это сработало, спасибо! –

Смежные вопросы