У меня есть сообщение, и мне нужно показать десять (например) первых «корневых» ответов со всеми ответами на себя, и это должно выглядеть как дерево. (Знаете, сообщения стандартного сообщения и дерева). Итак, вопрос в том, как получить его из БД - я использую hibernate, а afaik - это много времени - для извлечения самой коллекции WHOLE со всеми поддеревьями рекурсивно. (И, может быть, это хорошо только для небольших коллекций, иначе рекурсия вызовет переполнение стека (Ха-ха. Вот мы :)) Есть ли более эффективное решение?Как показать ответы в виде дерева на сообщение? Java & Hibernate
Так что теперь у меня есть код, как л ниже, но мне нужен еще один способ (BaseEntry это класс как для сообщения и любой ответ):
@Entity public class BaseEntry extends VersionedEntity {
private @Nullable BaseEntry parent;
@ManyToOne
@ForeignKey(name="base_entry_parent__base_entry_fk")
@Nullable public BaseEntry getParent()
{
return parent;
}
@OneToMany(mappedBy = "parent", cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
private List<BaseEntry> children;
...
Не могли бы вы посоветовать что-нибудь, пожалуйста?
спасибо большое .. Я попробую. Но если вы добавите пробел, вы не будете использовать эти lft & rgt для вычисления целого числа ответов на сообщение (?) – javagirl
@javagirl: Правильно, если вы добавите пробел, то количество ответов на сообщение не сразу очевидно. Но я считаю, что вы все равно возвращаете все ответы, поэтому можете просто посчитать их. – btilly
ну, на самом деле я хочу этот номер _before_ Я отвечу ответы :), чтобы показать количество комментариев к сообщению на предыдущей странице – javagirl