TIL

24_02_13 TIL

nakgopsae 2024. 2. 13. 22:07

오늘은 과제를 마무리 했다 

좋아요 기능을 다른분꺼는 같이 완성했는데 정작 나는 시간이 없어서 못한체로 제출을 했고 queryDSL을 사용해 만들어둔 TODOLIST를 날짜 내림차순으로 정렬해보았는데 

 

기본설정 

gradle에 추가 !

plugins {
   kotlin("kapt") version "1.8.22" // 추가!
}
val queryDslVersion = "5.0.0"

dependencies {

    implementation("com.querydsl:querydsl-jpa:$queryDslVersion:jakarta") // 추가!
    kapt("com.querydsl:querydsl-apt:$queryDslVersion:jakarta") // 추가!
   

}

 

QueryDslSupport 파일 

abstract class QueryDslSupport {

    @PersistenceContext
    protected lateinit var entityManager: EntityManager

    protected val queryFactory:JPAQueryFactory
        get(){
            return JPAQueryFactory(entityManager)
        }
}

 

RepositoryImpl - serviceImpl에서 여러파일을 주입 받는거보다 interface하나만 상속 받게 하기위해 기존의 Repository와 customRepository / RepositoryImpl을 만들어서 관리 해준다 

@Repository
class TodoRepositoryImpl:CustomTodoRepository,QueryDslSupport() {
    private val todo = QTodoEntity.todoEntity

    override fun sortByDate():List<TodoEntity>{
        return queryFactory.selectFrom(todo)
           .orderBy(todo.creatAt.desc())
            .fetch()
    }
}
//커스텀 레포지토리에서 상속 받고 커스텀 레포지토리는 기존의 TodoRepository에서 상속 받음

 

TodoServiceImpl 

 

@Service
class TodoServiceImpl(
    private val todoRepository: TodoRepository, // - 기존의 쿼리DSL레포지토리까지 주입 받던걸 하나로 주입 ㄱㄴ
    private val userRepository: UserRepository
):TodoService {// todoRepository의 객체를 주입받고 TodoService의 함수를 상속 받음
    override fun getTodo(todoId:Long):RetrieveTodoDto? {
        val findTodo = todoRepository.findByIdOrNull(todoId)?: throw ModelNotFoundException("todo",todoId)


        return findTodo?.let { RetrieveTodoDto.from(it) }
    }//principal 빼기
    //

    override fun getTodoList():List<TodoResponseDto> {
        return todoRepository.sortByDate().map{it.toResponse()}
        //오름차순 내림차순 둘다 해봄 적용됨 완료 !!
    }
    }

 

요구사항이 복잡하지 않기 때문에 일단은 이런식으로 날짜 내림차순정렬을 해보았다 !

'TIL' 카테고리의 다른 글

24_02_16TIL Cach  (1) 2024.02.16
24_02_15 TIL queryDSL활용 / 검색 /정렬 /페이징  (0) 2024.02.15
24_02_08 TIL  (0) 2024.02.08
24_02_06 TIL  (1) 2024.02.06
24_01_29 TIL  (1) 2024.01.29