#java #hibernate #jpa #recursion
Вопрос:
У меня есть объект Item
@Entity
public class Item {
@Id
private Long id;
@ManyToOne
private Item parentItem;
private String name;
private String number;
// getters amp; setters
}
Мне нужна функция, которая генерирует числа со следующими правилами:
- корневые элементы получают одно число, например 1. 2.
- дочерний элемент расширяет свой родительский номер и получает число, подобное 1.1. 1.2
- другие элементы-потомки также расширяют свой родительский номер, например 1.1.1. 1.1.2
- нет никаких ограничений на уровни потомков.
Ответ №1:
просто пройдите (от листа к корню) по дереву и соедините числа:
@Entity
public class Item {
@Id
private Long id;
@ManyToOne
private Item parentItem;
private String name;
private String number;
String getHierarchy(){
return this.parentItem != null ?
this.parentItem.getHierarchy() " . " this.number :
this.number
}
}