Два объекта с двунаправленным отношением один ко многим.
Объект A указывает на список объектов B, которых будет не более нескольких.Объект B имеет обратную ссылку на A.
Когда он отображался как JSON, я ожидал увидеть A с числом B или B с соответствующим ему A. Но это, похоже, зависит от стратегии выборки в@OneToMany или @ManyToOne аннотация.
В большинстве прочитанных мной статей написано, что @ManyToOne должен быть LAZY, а @OneToMany - EAGER.И этот подход будет работать при перечислении объекта A;каждый A и связанные с ним буквы B показаны в формате JSON.
Но при перечислении B я получаю сообщение об ошибке
Ошибка определения типа: [простой тип, класс org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor];вложенным исключением является com.fasterxml.jackson.databind.exc.InvalidDefinitionException: не найден сериализатор для класса org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor и не обнаружено никаких свойств для создания BeanSerializer (чтобы избежать исключения, отключите SerializationFeature.FAIL_ONEANSP
Изменение LAZY на EAGER решает проблему. Но, с LAZY, я бы ожидал, что он по крайней мере вызовет записи B. Ошибка удивительна.
Я просто добавлю, чтов обоих определениях сущностей используется JsonIdentityInfo (добавлено для предотвращения бесконечной рекурсии), в котором используется SimpleObjectIdResolver.
Итак, в общем, я запутался. Я могу заставить его работать, но не совсем уверен, почему.