Возникает ли у вас такая же проблема, если вы сделаете одну из сторон двунаправленной ассоциации стороной , владеющей ассоциации, используя атрибут mappedBy
(который вы должны использовать в любом случае)?Например:
@Entity public class Group {
...
@ManyToMany(fetch = FetchType.EAGER, mappedBy="groups")
List<User> users;
}
@Entity public class User {
...
@ManyToMany(fetch = FetchType.EAGER)
List<Group> groups;
}
Обновление: Я не могу найти никаких доказательств того, что использование EAGER
извлечения по обеим сторонам двунаправленной ассоциации запрещено и AFAIK, там нет упоминания отакое ограничение в документации Hibernate и / или спецификации JPA.
На самом деле, согласно этого комментария от Эммануила Бернарда к (как-то похожему) вопросу:
LAZY
или EAGER
должен быть ортогональным кпроблема бесконечного цикла в кодовой базе.Hibernate знает, как обрабатывать циклические графы
Для меня вышеупомянутое довольно ясно, Hibernate должен быть в состоянии обработать ваше отображение (как я уже упоминал в комментарии), и я хотел бы рассмотреть любые противоречивыеповедение как ошибка.
Если вы можете предоставить контрольный пример, позволяющий воспроизвести проблему , я бы предложил открыть проблему.