From 8b33f4203eac0cd59b6f9b149a8da1ad500382ce Mon Sep 17 00:00:00 2001 From: bronze_yun_4521 Date: Thu, 28 Aug 2025 09:19:26 +0900 Subject: [PATCH 1/2] fix: #236 resolve N+1 query issue with fetch join --- .../repository/custom/MessageRepositoryCustomImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/doldol_server/doldol/rollingPaper/repository/custom/MessageRepositoryCustomImpl.java b/src/main/java/doldol_server/doldol/rollingPaper/repository/custom/MessageRepositoryCustomImpl.java index 6e2a30e9..7709e63f 100644 --- a/src/main/java/doldol_server/doldol/rollingPaper/repository/custom/MessageRepositoryCustomImpl.java +++ b/src/main/java/doldol_server/doldol/rollingPaper/repository/custom/MessageRepositoryCustomImpl.java @@ -21,10 +21,12 @@ public class MessageRepositoryCustomImpl implements MessageRepositoryCustom { public MessageResponse getMessage(Long messageId, Long userId) { QMessage message = QMessage.message; QUser fromUser = new QUser("fromUser"); + QUser toUser = new QUser("toUser"); Message result = queryFactory .selectFrom(message) - .join(message.from, fromUser) + .join(message.from, fromUser).fetchJoin() + .join(message.to, toUser).fetchJoin() .where( message.id.eq(messageId), message.from.id.eq(userId), @@ -38,7 +40,7 @@ public MessageResponse getMessage(Long messageId, Long userId) { MessageType messageType = MessageType.SEND; - return MessageResponse.of(result, result.getName(), result.getTo().getName(), messageType); + return MessageResponse.of(result, result.getFrom().getName(), result.getTo().getName(), messageType); } @Override From 912babd4d9f1f503ddfd395ab419bfda8460674a Mon Sep 17 00:00:00 2001 From: bronze_yun_4521 Date: Thu, 28 Aug 2025 10:20:50 +0900 Subject: [PATCH 2/2] fix: #236 add index on invitation code --- .../java/doldol_server/doldol/rollingPaper/entity/Paper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/doldol_server/doldol/rollingPaper/entity/Paper.java b/src/main/java/doldol_server/doldol/rollingPaper/entity/Paper.java index 64d0c265..259e1f76 100644 --- a/src/main/java/doldol_server/doldol/rollingPaper/entity/Paper.java +++ b/src/main/java/doldol_server/doldol/rollingPaper/entity/Paper.java @@ -31,7 +31,7 @@ public class Paper extends BaseEntity { @Column(name = "open_date", nullable = false) private LocalDate openDate; - @Column(name = "invitation_code", nullable = false) + @Column(name = "invitation_code", unique = true, nullable = false) private String invitationCode; @Column(name = "participants_count")