Не думаю, что в отображении коллекции можно указать правильное или внутреннее соединение. Единственными параметрами в предложении fetch
являются левое внешнее соединение по умолчанию и последовательный выбор.
Проблема в том, что при создании сопоставления NHibernate необходимо знать, как извлечь элементы коллекции для любого произвольного корневого элемента с левой стороны объединения. При правильном или внутреннем соединении корневой объект может не существовать в возвращенной коллекции, поэтому вы застряли в этой точке.
Если критерий фильтра является статическим, вы можете указать предложение where
в отображении. Я думаю, что это было бы рекомендуемым решением для вашей ситуации.
Обходной путь - сделать коллекцию частной в вашем объекте, а затем создать другое свойство, которое вызывает HQL-запрос для реализации внутреннего соединения и возвращает эту коллекцию. Эта возвращенная коллекция будет иметь нужную вам семантику, но вам понадобятся отдельные методы для добавления или удаления элементов из коллекции.