From 8dcc6ae4ee418cdfdc60c76709ad03b4814fb83a Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sat, 4 Jun 2022 16:02:25 +0200 Subject: KB66 Add comment count to post header. Change-Id: I98fd99327fdfebaddfebe3541e6b1ccb1d78fe3c --- .../java/eu/mulk/mulkcms2/benki/posts/Post.java | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java b/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java index d3e7712..1ddffa8 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java @@ -44,10 +44,12 @@ import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.MapKey; import javax.persistence.OneToMany; +import javax.persistence.OrderBy; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; +import org.hibernate.annotations.Where; @Entity @Table(name = "posts", schema = "benki") @@ -113,6 +115,12 @@ public abstract class Post> extends PanacheEntityBase { @JsonbTransient public Collection referrers; + @ManyToMany(mappedBy = "referees") + @OrderBy("date DESC") + @Where(clause = "scope = 'comment'") + @JsonbTransient + public Collection comments; + @OneToMany( mappedBy = "post", fetch = FetchType.LAZY, @@ -216,6 +224,9 @@ public abstract class Post> extends PanacheEntityBase { cb = cb.where("post.scope").eq(Scope.top_level); + cb = cb.leftJoinFetch("post.comments", "comment"); + cb = cb.fetch("comment.texts"); + return cb; } @@ -393,16 +404,6 @@ public abstract class Post> extends PanacheEntityBase { } } - public Collection getComments() { - return referrers.stream() - .filter(l -> l.scope == Scope.comment) - .sorted( - Comparator.comparing( - (LazychatMessage l) -> Objects.requireNonNullElse(l.date, OffsetDateTime.MIN)) - .reversed()) - .toList(); - } - public enum Visibility { PUBLIC, SEMIPRIVATE, -- cgit v1.2.3