Skip to content

Commit 3e8ffd6

Browse files
[perf] 내 티켓 디테일 조회 API - FetchJoin을 활용한 성능 개선
* perf: 내 티켓 디테일 조회 API 성능 개선 작업 진행-fetchJoin * refactor: 임시 데이터 삭제
1 parent 5a1b292 commit 3e8ffd6

4 files changed

Lines changed: 11 additions & 4 deletions

File tree

backend/src/main/java/com/back/api/ticket/controller/TicketController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class TicketController implements TicketApi {
2626
@Override
2727
@GetMapping("/my")
2828
public ApiResponse<List<TicketResponse>> getMyTickets() {
29-
Long userId = httpRequestContext.getUser().getId();
29+
Long userId = httpRequestContext.getUserId();
3030

3131
List<TicketResponse> responses = ticketService.getMyTickets(userId);
3232

@@ -38,7 +38,7 @@ public ApiResponse<List<TicketResponse>> getMyTickets() {
3838
public ApiResponse<TicketResponse> getMyTicketDetails(
3939
@PathVariable Long ticketId
4040
) {
41-
Long userId = httpRequestContext.getUser().getId();
41+
Long userId = httpRequestContext.getUserId();
4242

4343
Ticket ticket = ticketService.getTicketDetail(ticketId, userId);
4444

backend/src/main/java/com/back/api/ticket/service/TicketService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ public List<TicketResponse> getMyTickets(Long userId) {
176176
@Transactional(readOnly = true)
177177
public Ticket getTicketDetail(Long ticketId, Long userId) {
178178

179-
Ticket ticket = ticketRepository.findById(ticketId)
179+
Ticket ticket = ticketRepository.findByIdWithDetails(ticketId)
180180
.orElseThrow(() -> new ErrorException(TicketErrorCode.TICKET_NOT_FOUND));
181181

182182
if (!ticket.getOwner().getId().equals(userId)) {

backend/src/main/java/com/back/domain/ticket/repository/TicketRepository.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import org.springframework.data.jpa.repository.JpaRepository;
88
import org.springframework.data.jpa.repository.Query;
9+
import org.springframework.data.repository.query.Param;
910

1011
import com.back.domain.ticket.entity.Ticket;
1112
import com.back.domain.ticket.entity.TicketStatus;
@@ -26,4 +27,10 @@ public interface TicketRepository extends JpaRepository<Ticket, Long>, TicketRep
2627
Optional<Ticket> findBySeatIdAndOwnerIdAndTicketStatus(Long seatId, Long userId, TicketStatus ticketStatus);
2728

2829
Optional<Ticket> findByEventIdAndOwnerIdAndTicketStatus(Long eventId, Long userId, TicketStatus ticketStatus);
30+
31+
@Query("SELECT t FROM Ticket t "
32+
+ "LEFT JOIN FETCH t.event e "
33+
+ "LEFT JOIN FETCH t.seat s "
34+
+ "WHERE t.id = :ticketId")
35+
Optional <Ticket> findByIdWithDetails(@Param("ticketId") Long ticketId);
2936
}

backend/src/main/resources/application.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spring:
1616
default_batch_fetch_size: 100
1717
hibernate:
1818
ddl-auto: update
19-
show-sql: false
19+
show-sql: true
2020
mvc:
2121
hiddenmethod:
2222
filter:

0 commit comments

Comments
 (0)