Я использую Hibernate / Spring и базу данных MySQL для управления данными.
В настоящее время я отображаю древовидную структуру в JTable. Дерево может иметь несколько ветвей, в свою очередь ветвь может иметь несколько ветвей (до девяти уровней) снова или иметь листья. В последнее время у меня возникают проблемы с производительностью, как только я хочу создавать новые ветви на более глубоких уровнях.
В настоящее время ветвь имеет внешний ключ для своего родителя. Доменобъект имеет доступ к своему родителю, вызывая getParent (), который возвращает родительскую ветвь. Чем глубже уровень, тем больше времени требуется для создания новой ветви.
Результаты микробенчмарка для создания новой ветви:
Уровень 1: 32 мс.
Уровень 3: 80 мс.
Уровень 9: 232 мс.
Очевидно, что за это отвечает уровень (что означает количество родителей). Поэтому я хотел спросить, есть ли какие-нибудь придатки, чтобы обойти эту проблему. Я не понимаю, почему Hibernate должен знать обо всем дереве объектов (от всех родителей до корня) при создании новой ветви. Но, насколько мне известно, это может быть единственной причиной задержки при создании новой ветви, потому что у ветви нет никаких других отношений с любыми другими объектами.
Я был бы очень благодарен за любые обходные пути или предложения.
приветствует,
ymene