Skip to content

Commit 4451fbb

Browse files
committed
fix: CPU 초과문제 (JPQL 파싱문제)
1 parent 34e8a5a commit 4451fbb

1 file changed

Lines changed: 26 additions & 9 deletions

File tree

src/main/java/store/lastdance/repository/expense/ExpenseRepository.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,32 @@ Page<Expense> findPersonalExpensesForCombined(
119119
);
120120

121121
// 통합 조회용 - 분담 지출
122-
@Query("SELECT e FROM Expense e " +
123-
"LEFT JOIN FETCH e.originalExpense " +
124-
"LEFT JOIN FETCH e.group " +
125-
"WHERE e.user = :user " +
126-
"AND e.expenseType = 'SHARE' " +
127-
"AND YEAR(e.expenseDate) = :year AND MONTH(e.expenseDate) = :month " +
128-
"AND (:category IS NULL OR e.category = :category) " +
129-
"AND (:search IS NULL OR e.title LIKE %:search% OR e.memo LIKE %:search%) " +
130-
"ORDER BY e.expenseDate DESC, e.createdAt DESC")
122+
@Query(value = "SELECT e.*, oe.expense_id as original_expense_id, oe.amount as original_expense_amount, " +
123+
"oe.description as original_expense_description, oe.expense_date as original_expense_date, " +
124+
"oe.expense_type as original_expense_type, oe.category as original_expense_category, " +
125+
"oe.memo as original_expense_memo, oe.created_at as original_expense_created_at, " +
126+
"oe.updated_at as original_expense_updated_at, oe.user_id as original_expense_user_id, " +
127+
"oe.group_id as original_expense_group_id, " +
128+
"g.group_id as group_id, g.group_name as group_name, g.invite_code as group_invite_code, " +
129+
"g.owner_id as group_owner_id, g.created_at as group_created_at, g.updated_at as group_updated_at " +
130+
"FROM expense e " +
131+
"LEFT JOIN expense oe ON e.original_expense_id = oe.expense_id " +
132+
"LEFT JOIN groups g ON e.group_id = g.group_id " +
133+
"WHERE e.user_id = :user " +
134+
"AND e.expense_type = 'SHARE' " +
135+
"AND EXTRACT(YEAR FROM e.expense_date) = :year AND EXTRACT(MONTH FROM e.expense_date) = :month " +
136+
"AND (:category IS NULL OR e.category = :category) " +
137+
"AND (:search IS NULL OR e.title LIKE %:search% OR e.memo LIKE %:search%) " +
138+
"ORDER BY e.expense_date DESC, e.created_at DESC",
139+
countQuery = "SELECT COUNT(e.expense_id) FROM expense e " +
140+
"LEFT JOIN expense oe ON e.original_expense_id = oe.expense_id " +
141+
"LEFT JOIN groups g ON e.group_id = g.group_id " +
142+
"WHERE e.user_id = :user " +
143+
"AND e.expense_type = 'SHARE' " +
144+
"AND EXTRACT(YEAR FROM e.expense_date) = :year AND EXTRACT(MONTH FROM e.expense_date) = :month " +
145+
"AND (:category IS NULL OR e.category = :category) " +
146+
"AND (:search IS NULL OR e.title LIKE %:search% OR e.memo LIKE %:search%)",
147+
nativeQuery = true)
131148
Page<Expense> findShareExpensesForCombined(
132149
@Param("user") User user,
133150
@Param("year") int year,

0 commit comments

Comments
 (0)