Squeak.ru - шаблоны программирования

Нетерпеливая загрузка постоянного объекта с использованием аннотаций гибернации

У меня есть три объекта: A, B и C.

A имеет отношения один ко многим с B.

B имеет отношение «один ко многим» с C.

Классы следующие:

public class A {
   @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   @JoinTable(...)
   Set<B> getBSet();
}

public class B {
   @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   @JoinTable(...)
   Set<C> getCSet();
}

Когда я использовал session.get(A.class, id) (сессия - это объект Hibernate, и у меня уже был экземпляр A, сохраненный в базе данных с одним набором B и 1 набором C), чтобы получить постоянный объект класса A с предоставленный идентификатор, я получил следующее исключение:

Apr 12, 2018 4:44:25 PM org.hibernate.event.internal.DefaultLoadEventListener onLoad
INFO: HHH000327: Error performing load command : org.hibernate.PropertyAccessException: Exception occurred inside setter of com.example.B.cSet

Сеттер в B:

public void setCSet(Set<C> cSet) {
   this.cSet = cSet;
   ...
}

Я думал, что уже заставил все жадно грузиться, но как-то не так, как хотелось.

Любые идеи, что произошло и как мне это исправить?

Спасибо за ваше время.


Ответы:


1

Попробуйте переместить все аннотации в поля вместо аннотирования методов. Похоже, что аннотирование методов вместо полей прерывает активную загрузку. Посмотрите на этот вопрос, он похож на ваш: Что вызывает org. hibernate.PropertyAccessException: внутри установщика возникла исключительная ситуация

12.04.2018
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...