Skip to content

Commit f0c7431

Browse files
authored
[BOOK-255] refactor: 독서 기록 pagenumber로 order by 시 우선순위 조정하여 동일한 아이디 내려오는 현상 해결(#90) (#97)
1 parent a27f214 commit f0c7431

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

infra/src/main/kotlin/org/yapp/infra/readingrecord/repository/impl/JpaReadingRecordQuerydslRepositoryImpl.kt

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class JpaReadingRecordQuerydslRepositoryImpl(
3131
val results = queryFactory
3232
.selectFrom(readingRecord)
3333
.where(whereCondition)
34-
.orderBy(createOrderSpecifier(sort))
34+
.orderBy(*createOrderSpecifiers(sort))
3535
.offset(pageable.offset)
3636
.limit(pageable.pageSize.toLong())
3737
.fetch()
@@ -45,13 +45,21 @@ class JpaReadingRecordQuerydslRepositoryImpl(
4545
return PageImpl(results, pageable, total)
4646
}
4747

48-
private fun createOrderSpecifier(sort: ReadingRecordSortType?): OrderSpecifier<*> {
48+
private fun createOrderSpecifiers(sort: ReadingRecordSortType?): Array<OrderSpecifier<*>> {
4949
return when (sort) {
50-
ReadingRecordSortType.PAGE_NUMBER_ASC -> readingRecord.pageNumber.asc()
51-
ReadingRecordSortType.PAGE_NUMBER_DESC -> readingRecord.pageNumber.desc()
52-
ReadingRecordSortType.CREATED_DATE_ASC -> readingRecord.createdAt.asc()
53-
ReadingRecordSortType.CREATED_DATE_DESC -> readingRecord.createdAt.desc()
54-
null -> readingRecord.createdAt.desc()
50+
ReadingRecordSortType.PAGE_NUMBER_ASC -> arrayOf(
51+
readingRecord.pageNumber.asc(),
52+
readingRecord.updatedAt.desc()
53+
)
54+
55+
ReadingRecordSortType.PAGE_NUMBER_DESC -> arrayOf(
56+
readingRecord.pageNumber.desc(),
57+
readingRecord.updatedAt.desc()
58+
)
59+
60+
ReadingRecordSortType.CREATED_DATE_ASC -> arrayOf(readingRecord.createdAt.asc())
61+
ReadingRecordSortType.CREATED_DATE_DESC -> arrayOf(readingRecord.createdAt.desc())
62+
null -> arrayOf(readingRecord.createdAt.desc())
5563
}
5664
}
5765

0 commit comments

Comments
 (0)