У меня есть объект Hibernate с именем Menu, который имеет коллекцию групп, каждая группа в свою очередь имеет коллекцию MenuItems.Так, например, меню может быть для ресторана, группы могут быть Обед и Ужин, а элементы меню в них могут быть Паста, Бургер, Салат.
Проблема, с которой я столкнулся, заключается в том, что, как только я создал меню и сохранил его (что работает нормально), когда я пытаюсь вернуть меню, я получаю больше групп, чем было изначально создано.Итак, если взять приведенный выше пример, если я положу бургер и салат в группу «Ужин» и пасту в обед, мне вернется меню с ТРИ (а не с ДВУМ) группами: 2 группы «Ужин» (каждая с элементами, которые я вставил) и 1 группа «Обед»,Я в основном возвращаюсь в виде групп майни по количеству пунктов меню, которые я вставил в каждую группу.Так что, если я вставил 4 элемента, 4 группы возвращаются.Кто-нибудь знает, почему это может быть?
Отношения: меню к группе = один ко многим, группа к элементам меню = многие ко многим
Группы не используются повторно.Они будут уникальными для одного меню.Но MenuItems можно использовать во многих группах.
Вот мой код:
class Menu {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long menuID;
@OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name="menuID")
private List<MenuGroup> groups;
}
class MenuGroup {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long groupID;
@Sort (type=SortType.NATURAL)
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="group_menu_item",
joinColumns = { @JoinColumn(name = "groupID") },
inverseJoinColumns = { @JoinColumn(name = "menuItemID") } )
private SortedSet<MenuItem> menuItems;
}
class MenuItem {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long menuItemID;
}