Как запустить запрос NHIBERNATE ICRITERIA с SetFetchMode (ленивый), когда ленивый = ложный определен в HBM?

StackOverflow https://stackoverflow.com/questions/3822684

Вопрос

Я хотел бы запустить запрос критериев с ленивыми ассоциациями многих к одному. Эти ассоциации устанавливаются как lazy="false" в HBM. Это потому, что мы используем это нетерпеливо 90% проекта.

Но есть несколько «больших» запросов, которые должны работать как lazy="proxy".

HBM:

<many-to-one name="DestinationElement" class="X" column="DstElemId" not-null="true" unique="false" cascade="save-update" outer-join="auto" fetch="select" lazy="false" index="IDX_Ass_DestElem">

Настройка критериев:

criteria.SetFetchMode("DestinationElement", FetchMode.Lazy);

Работает обратный путь, но не так. Это выбирает с нетерпением.

LOC IS 20K +, и это будет массивный рефактором, чтобы сделать это противоположным образом.

Как я могу заставить это привлечь лениво только тогда, когда я хочу, и с нетерпением ждем все остальные?

Заранее спасибо!

Это было полезно?

Решение

lazy="false" В HBM не может быть переопределен в запросе (помимо плохой идеи 99% времени)

Вам придется изменить свой код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top