Back-end Skill/DataBase

[queryDsl] Q-type Class 는 도대체 왜 만드는건가?

Sophie소피 2022. 10. 24. 01:26

Q-type class QueryDSL 설정을 성공하면

@Entity가 붙은 클래스를 찾아 자동생성된다. 

 

예를 들어 @Entity가붙은 Member.kt 클래스가 있다면

QMember.kt 파일이 자동생성된다.

 

repositoryImpl에서 쿼리를 날릴때

메소드 기반으로 쿼리를 작성할 때

우리가 만든 도메인 클래스 구조를 설명해주는

메타데이터역할을 하며

쿼리의 조건을 설정할 때 사용하려고 만드는것이였다.

 

 

작성글 삭제하는 쿼리이다. 

@Entity가붙은 Member.kt 클래스가 있다면

QMember.kt 파일이 자동생성되면서 

알아서 객체 이름만 맞춰준다면 

쿼리를 코드처럼 편하게 짤 수 있다. 

 override fun deleteBoard(userId: Long, board_id: Long): Boolean {
        return queryFactory.delete(board)
            .where(board.id.`in`(board_id))
            .execute() == 1L
    }

 

이게 바로 queryDsl의  첫번째 장점이다!