Ошибка ленивого сеанса Hibernate при вставке дочернего элемента для отношения OneToMany ⇐ JAVA
Ошибка ленивого сеанса Hibernate при вставке дочернего элемента для отношения OneToMany
У меня есть эта функция:
публичный класс Test { public void addTranslation(Имя строки, LanguageCodes LanguageCode) { Переводы перевод = новые переводы (имя, языковой код, это); this.translations.add(перевод); } ... @OneToMany(mappedBy = "Тест", каскад = CascadeType.ALL, выборка = FetchType.LAZY) частный список переводы = новый ArrayList(); } public class Translations { public Translations(Имя строки, LanguageCodes LanguageCode, Тестовый тест) { это.имя = имя; this.languageCode = языковой код; this.test = тест; } @ManyToOne(выборка = FetchType.LAZY) частный тестовый тест; } Когда я вызываю его после перезапуска сервера, я получаю сообщение об ошибке: org.hibernate.LazyInitializationException: не удалось инициализировать прокси – нет сеанса. Если я не использую LAZY fetch и явно использую EAGER, все работает без ошибок.
Есть ли лучший и более чистый способ выполнить вышеописанное без использования EAGER? Нужно ли мне двунаправленное отношение вместо использования this в таблице переводов?
У меня есть эта функция:
публичный класс Test { public void addTranslation(Имя строки, LanguageCodes LanguageCode) { Переводы перевод = новые переводы (имя, языковой код, это); this.translations.add(перевод); } ... @OneToMany(mappedBy = "Тест", каскад = CascadeType.ALL, выборка = FetchType.LAZY) частный список переводы = новый ArrayList(); } public class Translations { public Translations(Имя строки, LanguageCodes LanguageCode, Тестовый тест) { это.имя = имя; this.languageCode = языковой код; this.test = тест; } @ManyToOne(выборка = FetchType.LAZY) частный тестовый тест; } Когда я вызываю его после перезапуска сервера, я получаю сообщение об ошибке: org.hibernate.LazyInitializationException: не удалось инициализировать прокси – нет сеанса. Если я не использую LAZY fetch и явно использую EAGER, все работает без ошибок.
Есть ли лучший и более чистый способ выполнить вышеописанное без использования EAGER? Нужно ли мне двунаправленное отношение вместо использования this в таблице переводов?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение