fix(osiv): lazy 관계 선로딩을 보완한다
This commit is contained in:
@@ -196,8 +196,12 @@ class AdminOriginalWorkService(
|
||||
/** 원작 상세 조회 (소프트 삭제 제외) */
|
||||
@Transactional(readOnly = true)
|
||||
fun getOriginalWork(id: Long): OriginalWork {
|
||||
return originalWorkRepository.findByIdAndIsDeletedFalse(id)
|
||||
val originalWork = originalWorkRepository.findByIdAndIsDeletedFalse(id)
|
||||
.orElseThrow { SodaException(messageKey = "admin.chat.original.not_found") }
|
||||
|
||||
initializeResponseRelations(originalWork)
|
||||
|
||||
return originalWork
|
||||
}
|
||||
|
||||
/** 원작 페이징 조회 */
|
||||
@@ -210,7 +214,9 @@ class AdminOriginalWorkService(
|
||||
else -> size
|
||||
}
|
||||
val pageable = PageRequest.of(safePage, safeSize, Sort.by("createdAt").descending())
|
||||
return originalWorkRepository.findByIsDeletedFalse(pageable)
|
||||
val originalWorks = originalWorkRepository.findByIsDeletedFalse(pageable)
|
||||
originalWorks.content.forEach { initializeResponseRelations(it) }
|
||||
return originalWorks
|
||||
}
|
||||
|
||||
/** 지정 원작에 속한 활성 캐릭터 페이징 조회 (최신순) */
|
||||
@@ -233,7 +239,14 @@ class AdminOriginalWorkService(
|
||||
/** 원작 검색 (제목/콘텐츠타입/카테고리, 소프트 삭제 제외) - 무페이징 */
|
||||
@Transactional(readOnly = true)
|
||||
fun searchOriginalWorksAll(searchTerm: String): List<OriginalWork> {
|
||||
return originalWorkRepository.searchNoPaging(searchTerm)
|
||||
val originalWorks = originalWorkRepository.searchNoPaging(searchTerm)
|
||||
originalWorks.forEach { initializeResponseRelations(it) }
|
||||
return originalWorks
|
||||
}
|
||||
|
||||
private fun initializeResponseRelations(originalWork: OriginalWork) {
|
||||
originalWork.originalLinks.forEach { it.url }
|
||||
originalWork.tagMappings.forEach { it.tag.tag }
|
||||
}
|
||||
|
||||
/** 원작에 기존 캐릭터들을 배정 */
|
||||
|
||||
Reference in New Issue
Block a user