Давайте рассмотрим пример:
class Book {
String title
Author author
}
class Author {
...
}
Book book = Book.get(1)
Как известно, по умолчанию выборки режим ленив в классах домена. Учитывая вышеприведенный пример, скажем, мы получаем объект книги, тогда объект Book автоматически привязывается к объекту сеанса hibernate i.e кешу первого уровня. И после того, как объект домена будет отсоединен от объекта сеанса, а затем мы попытаемся извлечь book.author, на данный момент он вызывает исключение инициализации Lazy.
Таким образом, решение, чтобы иметь или режим извлечения как хотят или прикрепить объект книги в спящий режим сеанса, используя код ниже:
if(!book.isAttached()){
book.attach()
}
Приведенное выше описание является одним из сценария. Могло быть еще много. Я прошу других поделиться с вами.
Это работает для меня действительно хорошо, но утомительно размещать его везде, где это необходимо! – IgniteCoders
@IgniteCoders Amit не кажется активным в SO. Знаете ли вы, какие причины и объекты должны быть отделены в один сеанс? –
@ AlexSuraphel Я действительно не знаю. Я просто помещаю его, когда исключение возникает где-то – IgniteCoders