2011-01-18 4 views
1

Из-за архитектурных соображений (разделение на агрегаты) я использую агрегат A, который имеет B_Id для объекта B, который не должен быть частью A-агрегата.NHibernate ICriteria API: Retrievieng два объекта без привязки внешнего ключа

Атрибут B_Id А просто отображается в NHibernates XML следующим образом:

<property name="B_Id" /> 

Я хотел бы кодировать запрос с ICriteria API, который должен выразить это SQL-запрос:

SELECT * FROM a LEFT JOIN b ON a.B_Id = b.Id

Проблема в следующем: B_Id не отображается как внешний ключ (и не должен).

Существуют ли решения для извлечения всех атрибутов A и B в одном запросе, восстановленном ICriteria?

ответ

0

Лучший способ достичь этого - сопоставить отношения, используя query only property. Вы также можете сделать это, используя HQL's with clause, но (насколько я знаю), который не поддерживает левые внешние соединения. Я не знаю, каким образом это сделать, используя API критериев.

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