Java Hibernate Lazy = false - PullRequest
       2

Java Hibernate Lazy = false

1 голос
/ 02 января 2011

При установке Lazy=false, hibernate автоматически загрузит объекты в требуемые наборы, например,

<set name="Options" table="ATTRIBUTEOPTION" inverse="false"  cascade="all" lazy="false">
        <key>
            <column name="ATTRIBUTEID" />
        </key>
        <one-to-many class="com.BiddingSystem.Models.AttributeOption" />
</set>

, но если в моем отображении XML, я помещаю lazy = true и в каком-то месте в моем приложениирешить, что я хочу загрузить все параметры атрибута, должен ли я сделать это вручную, или есть метод, который позволяет hibernate, что теперь я хочу установить lazy=false ??

Ответы [ 2 ]

4 голосов
/ 02 января 2011

Вы не можете изменить конфигурацию во время выполнения. Но вы можете использовать Hiberante.initialize(..) для инициализации отложенных коллекций.

3 голосов
/ 02 января 2011

Йо может сделать это вручную, просто используя getOptions ().Но если при загрузке сущности, которая вам уже нужна, вам понадобятся опции, то вы можете выполнить выборку с помощью метода fetch join следующим образом:

 select c from EntityX c left join fetch c.Options

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...