У меня есть вопрос, который, я думаю, должен быть довольно распространенным я не могу найти ответ.hibernate @ManyToMany двунаправленный нетерпеливый выбор
У меня есть 2 объекта: группа и пользователь. Мои классы выглядят примерно так:
class Group
{
@ManyToMany(fetch = FetchType.EAGER)
List<User> users;
}
class User
{
@ManyToMany(fetch = FetchType.EAGER)
List<Group> groups;
}
Теперь, когда я пытаюсь получить пользователь из базы данных она приносит все его группа и все группы объединяют все свои пользователь и так далее. Наконец, я получаю исключение stackoverflow.
Как я могу решить эту проблему и все еще иметь свою двунаправленную связь и возможность доступа к объектам в списках?
Да. то же самое происходит. я могу понять, что смысл b/c hibernate должен принести все объекты списка для каждого списка, и это бесконечный цикл. мой вопрос в том, можно ли ограничить глубину, в которой спящий режим приводит объекты (что-то вроде fetch_max_depth, но для многих-ко-многим). – refaelos
@ Rafa На самом деле, я ожидал бы, что Hibernate обнаружит цикл и сделает соответствующую вещь (но я не нашел времени, чтобы проверить это). С другой стороны, я не могу сказать, что эта загрузка с нетерпением обе стороны от многих ко многим выглядят как хорошая идея. –