У меня есть модель с родителем / дочерним отношением, 1 категория может иметь 1 / более подкатегорию
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "category_id")
private int id;
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="parent_id")
private Category parent;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "parent_id")
private Set<Category> children;
Когда я использую findAll () (spring-data-jpa), у меня результат как
[
{
id:1
children: [
{
id:2
children: []
},
{
id:3
children: [
{
id:4
children: []
}
]
}
]
},
{
id:2
children: []
},
{
id:3
children: [
{
id:4
children: []
}
]
},
{
id:4
children: []
},
{
id:5
children: []
}
]
Я хочу собственный запрос или что-то вроде (выберите ... отлично), который возвращает только категории root, а не категории, которые являются только потомками других категорий. Таким образом, 2, 3 и 4 не должны быть частью ожидаемого результата (см. Ниже).
[
{
id:1
children: [
{
id:2
children: []
},
{
id:3
children: [
{
id:4
children: []
}
]
}
]
},
{
id:5
children: []
}
]
Спасибо за помощь.