인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 DB 2편 - 데이터 접근 활용 기술

실용적인 구조

질문입니다!

해결된 질문

작성

·

412

0

  1. 강의에서는 Jparepository를 상속받는 ItemRepositoryV2 와 ItemQueryRepository 2개를 만들어서 ItemService에서 두 개의 리포지토리를 이용했는데요 이걸 하나로 만들 수는 없나요? (JpaRepository를 상속 받고 거기 안에서 QueryDSL을 사용 하면 안되나요?) 만약 가능한데 나누신거라면 나눈 이유가 궁금합니다

 

  1. QItem은 무엇인가요 ? 아니면 @Entity가 붙은 클래스앞에 Q를 붙여서 엔티티마다 생성되는건가요 ? 엔티티들의 컨테이너라서 QItem.item 이렇게 사용 하는 것인지 헷갈립니다 ( A 클래스에 @Entity, B클래스에 @Entity가 붙어있다면 QA, QB 가 생성되는 것인가요? 아니면 QItem.A , QItem.b 이렇게 사용하게 되는 것인가요?

답변 1

0

안녕하세요. hjemsti님, 공식 서포터즈 y2gcoder입니다.

  1. 하나로 만들 수 있습니다. 영한님의 실전! Querydsl 강의에서 그 내용이 나옵니다. 두 개로 나눈 이유는 Repository의 하는 일에 따라 나눈 것으로 볼 수 있습니다. ItemRepositoryV2는 기본적인 CRUD 기능만 담당하고, ItemQueryRepository는 보통 복잡한 조회로직을 담당하도록 나눈 것입니다. 여기서는 검색기능이 비교적 간단했지만, 실무에서는 복잡한 조회로직까지 ItemRepositoryV2에 있을 경우 크기가 비대해지면서 관리하기가 어려워지기 때문에 구분해서 나누는 경우도 있습니다.
    이런 것들을 패턴화한 것이 CQRS 패턴인데, 해당 링크를 참조해주세요!
    https://docs.microsoft.com/ko-kr/azure/architecture/patterns/cqrs

  2. 맞습니다. QueryDSL을 사용하기 위해 QueryDSL에서 자동으로 만들어준 객체입니다. 자세한 것은 마찬가지로 영한님의 실전! Querydsl 강의를 보셔도 좋습니다!


감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기