получить oneToMany и manyToOne, используя hibernate и @JsonIgnore - PullRequest
0 голосов
/ 09 октября 2018

У меня есть таблица A, которая связана с таблицей B в отношении oneToMany (то есть B связана с manyToOne), оба отношения установлены в EAGER. Я видел, что, если я не добавлю следующую аннотацию

@JsonIgnore

на manyToOne (имеется в виду таблица B) я получаю сообщение об ошибке (бесконечный цикл) того, что я иду из таблицы C в таблицу B, чтобы получить данные из таблицы A, из-за этой аннотации она становится пустой (из-за этой аннотации) мой вопрос:как мне получить информацию из таблицы A, приходящей в таблицу B (может быть, @JsonIgnore не так?) моя версия в спящем режиме 5.1.7

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

@ JsonIgnore говорит: не нужно, чтобы это поле отображалось в JSON.Библиотека Джексона не будет пытаться заполнить это поле.

Но как только вы удалите @JsonIgnore, это приведет Джексона к бесконечному количеству вызовов для получения данных B для A, а затем к данным A для B, эти вызовы поступают в Hibernateи вы получаете сообщение об ошибке.

Вы можете

  1. переосмыслить вашу схему
  2. использовать объекты DTO
  3. Создавать пользовательские запросы и затем создавать ответ

Сначала я проверю вариант 2 и, возможно, 1.

0 голосов
/ 09 октября 2018

Не думаю, что это как-то связано с Hibernate.Когда именно вы получаете ошибку?Я предполагаю при сортировке данных.

И это именно то, почему @JsonIgnore помогает.Без этого маршаллинг объекта класса B включает в себя объект A.И сортировка объекта A включает в себя все связанные объекты B.Вы понимаете проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...