LazyInitializationException при добавлении в список, который хранится в классе сущности с использованием hibernate и gilead для gwt
Вопрос
Правильно, я работаю с hibernate gilead и gwt, чтобы сохранить мои данные о пользователях и файлах веб-сайта.у моих пользователей есть список местоположений файлов.Я использую аннотации для сопоставления моих классов с базой данных.Когда я пытаюсь добавить расположение файлов в список, который хранится в пользовательском классе, я получаю код генерирующего кода.
это метод ниже, который переопределяется из класса сервлета загрузки внешнего файла, который я использую.когда файл загружается, он вызывает этот метод.
user1 загружается из базы данных в другом месте.
исключение происходит в org.hibernate.LazyInitializationException
.Я вообще этого не понимаю.любая помощь была бы замечательной.трассировка стека ошибки ниже
// Это файл класса для пользователя Your Files
родовое слово}
родовое слово}
родовое словоРешение
Ленивый означает, что значения коллекции загружаются из базы данных только при доступе к ним. Если в это время был закрыт генеракодицетагкод, генерируется кодовый кодовый тег, поскольку данные не могут быть получены.
В вашем случае я бы просто предложил добавить к ассоциации активный тип выборки:
родовое словоПри загрузке объекта будет загружен генерируемый кодовый тег, и ленивая загрузка не потребуется.
Распространенным решением является использование OpenSessionInView , но оно может не всегда работать с GWT, потому что клиент удален и сеанс не может быть открыт там.
Итак, у вас могут возникнуть проблемы с отложенной инициализацией. Вы можете поискать связанные вопросы, их несколько - это и это например.
Другие советы
Это исключение означает, что ассоциация FileLocations еще не загружена, и вы пытаетесь получить к ней доступ.Сеанс не открыт, и нет возможности загрузить ассоциацию. Это исключение LazyInitializationException.
Изменить: прочтите сообщение Божо, чтобы узнать о решении.