API-интерфейс NHibernate ICriteria: получение двух объектов без привязки к внешнему ключу - PullRequest
1 голос
/ 18 января 2011

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

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

<property name="B_Id" />

Мне нравится кодировать запрос с помощью API-интерфейса ICriteria, который должен выражать этот SQL-запрос:

ВЫБРАТЬ * ИЗ ЛЕВОГО СОЕДИНЕНИЯ b НА a.B_Id= b.Id

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

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

1 Ответ

0 голосов
/ 18 января 2011

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

...