В этом уроке для хранения иерархических структур мы используем подход, который называется Материализованный путь
Плюс: легко получить часть дерева или всё дерево целиком
Минус: Сложно менять структуру дерева. Если изменится один узел, нужно будет менять все узлы, которые от него зависят
Еще один пример иерархической структуры - комментарий. На многих форумах можно оставлять комментарий на комментарий
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Lob
private String content;
// Текстовое поле, в котором будет хранится путь
private String path;
// Геттеры и сеттеры
}
Путь представляет собой строку, в которой через точку перечислены все предки
10 | Comment content | 1.3.5.7
Комментарий с id 10 является потомком комментария 7, тот в свою очередь является потомком комментария 5 и так далее
Значение path у корневого комментария равно null
1
|_3
|_5
|_7
|_10
Из этого пути легко можно получить предка для текущего комментария или всё дерево целиком
Загрузите домашнее задание с помощью команды:
hexlet program download java trees
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу