From d7b0aca4e63d3096ca6f9a920abcbbfe4c1aaedb Mon Sep 17 00:00:00 2001 From: WilliamColton Date: Sun, 3 Aug 2025 22:36:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=94=B6=E5=88=B0=E7=9A=84?= =?UTF-8?q?=E7=82=B9=E8=B5=9E=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../openisle/repository/ReactionRepository.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/com/openisle/repository/ReactionRepository.java b/backend/src/main/java/com/openisle/repository/ReactionRepository.java index dfd76871e..e66c1f568 100644 --- a/backend/src/main/java/com/openisle/repository/ReactionRepository.java +++ b/backend/src/main/java/com/openisle/repository/ReactionRepository.java @@ -31,12 +31,17 @@ public interface ReactionRepository extends JpaRepository { long countByUserAfter(@Param("username") String username, @Param("start") java.time.LocalDateTime start); @Query(""" - SELECT COUNT(r) FROM Reaction r - LEFT JOIN r.post p + SELECT COUNT(DISTINCT r.id) + FROM Reaction r + LEFT JOIN r.post p + LEFT JOIN p.author pa LEFT JOIN r.comment c - WHERE r.type = com.openisle.model.ReactionType.LIKE AND - ((p IS NOT NULL AND p.author.username = :username) OR - (c IS NOT NULL AND c.author.username = :username)) + LEFT JOIN c.author ca + WHERE r.type = com.openisle.model.ReactionType.LIKE + AND ( + (r.post IS NOT NULL AND pa.username = :username) + OR (r.comment IS NOT NULL AND ca.username = :username) + ) """) long countLikesReceived(@Param("username") String username);