У меня есть две сущности, Menu
и MenuItem
, как показано в исходном коде ниже. Я пытаюсь получить Menu со всеми дочерними объектами из базы данных, но Hibernate также вставляет дочерние объекты MenuItem в список nodes
объекта Menu
.
Menu. java
[...]
@OneToMany(fetch = FetchType.EAGER, mappedBy = "menu", cascade = CascadeType.ALL, orphanRemoval = true)
@OrderBy("order ASC")
private List<MenuItem> nodes = new ArrayList<MenuItem>();
[...]
MenuItem. java
[...]
@ManyToOne
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "parentId")
private MenuItem parentItem;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "parentItem", cascade = CascadeType.ALL, orphanRemoval = true)
private List<MenuItem> children = new ArrayList<MenuItem>();
@ManyToOne(optional = false)
@JoinColumn(name = "menuId")
private Menu menu;
[...]
В качестве подсказки: я знаю, что вы не должны использовать FetchType.EAGER для коллекций, но поскольку мне нужны все элементы коллекций, их полезно загружать, когда загружено Меню. Без списков меню не будет.