summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2022-06-04 16:02:25 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2022-06-04 16:24:24 +0200
commit8dcc6ae4ee418cdfdc60c76709ad03b4814fb83a (patch)
tree6d7dbefe5bad6e47e324fc302e5bcde41181d768 /src/main/java
parent1937e6a72594f98d1fa031d8220f10ccc798c2be (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.java21
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,