Не работает lazy loading в NHibernate - CodeHelper

Не работает lazy loading в NHibernate

1

Есть класс, хранящий коллекцию экземпляров другого класса. В меппинге настроено, что эта коллекция должна загружаться по требованию:

<bag name="Children" table="children" lazy="true" inverse="true" fetch="join">
  <key column="parent_id"/>
  <one-to-many class="Child" />
</bag>

Но, несмотря на это, коллекция постоянно загружается вместе с родительским объектом. В запросе при этом делается JOIN на дочернюю таблицу.

Лучший ответ:

3

Если установлено fetch="join", то NHibernate всегда будет использовать в запросе LEFT OUTER JOIN для загрузки дочерних сущностей. При этом lazy="true" не имеет смысла.

Попробуйте fetch="join" заменить на fetch="select"

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.