Каков эквивалентный способ настройки lazy = "true" в hibernate3.?
While, выбирая объект, который я буду Извлечь связанный объект, используя концепцию извлечения. Так что в самом отображении мне нужно указать его.
Я не уверен, что понял вопрос, но если вы ищете эквивалент с использованием аннотаций, то ManyToOne
аннотация допускает атрибут fetch
. Из спецификации JPA 1.0:
9.1.22 Аннотация ManyToOne
Аннотация ManyToOne определяет однозначная ассоциация с другим класс сущностей, который имеет отношение «многие к одному» множественность. это не нормально необходимо указать целевой объект явно, так как обычно это может быть определяется по типу объекта ссылаются.
В таблице 15 перечислены элементы аннотации. который может быть указан для ManyToOne аннотация и их значения по умолчанию.
Каскадный элемент указывает набор каскадных операций, которые распространяется на связанный объект. Операции, которые являются каскадными, определяется перечислением CascadeType:
public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};
Значение cascade=ALL эквивалентно cascade={СОХРАНИТЬ, ОБЪЕДИНИТЬ, УДАЛИТЬ, ОБНОВИТЬ}.
@Target({METHOD, FIELD}) @Retention(RUNTIME) публичный @интерфейс ManyToOne { Класс targetEntity() по умолчанию void.class; CascadeType[] cascade() по умолчанию {}; FetchType fetch() по умолчанию EAGER; логический необязательный() по умолчанию true; }
Стратегия EAGER является требованием среда выполнения поставщика постоянства, которая связанная сущность должна быть охотно принес. Стратегия LAZY — это подсказка к среде выполнения поставщика постоянства что связанный объект должен быть извлекается лениво, когда оно первое доступ.Реализация разрешено охотно получать ассоциации, для которых ЛЕНЬ указана подсказка по стратегии.
Таким образом, вы можете сделать следующее:
@ManyToOne(fetch=FetchType.LAZY)
Foo foo
А с XML-отображениями Hibernate ассоциация по умолчанию будет ленивой.