diff options
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2022-06-04 16:02:25 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2022-06-04 16:24:24 +0200 |
commit | 8dcc6ae4ee418cdfdc60c76709ad03b4814fb83a (patch) | |
tree | 6d7dbefe5bad6e47e324fc302e5bcde41181d768 /src/main/java | |
parent | 1937e6a72594f98d1fa031d8220f10ccc798c2be (diff) |
KB66 Add comment count to post header.
Change-Id: I98fd99327fdfebaddfebe3541e6b1ccb1d78fe3c
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java | 21 |
1 files changed, 11 insertions, 10 deletions
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<Text extends PostText<?>> extends PanacheEntityBase { @JsonbTransient public Collection<LazychatMessage> referrers; + @ManyToMany(mappedBy = "referees") + @OrderBy("date DESC") + @Where(clause = "scope = 'comment'") + @JsonbTransient + public Collection<LazychatMessage> comments; + @OneToMany( mappedBy = "post", fetch = FetchType.LAZY, @@ -216,6 +224,9 @@ public abstract class Post<Text extends PostText<?>> 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<Text extends PostText<?>> extends PanacheEntityBase { } } - public Collection<LazychatMessage> 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, |