[JPA] maven에서 querydsl Q class 생성

2023. 12. 13. 14:23·개발/JPA
728x90
반응형

maven에서 querydsl Q class 생성

maven 환경에서 querydsl 를 사용하려고 했는데 Q class가 안생겨서 삽질했던 경험을 적어본다.

pom.xml


<dependencies>
    <!-- other dependency  -->  

    <dependency>  
      <groupId>com.querydsl</groupId>  
      <artifactId>querydsl-apt</artifactId>  
      <version>5.0.0</version>  
    </dependency>  

    <dependency>  
      <groupId>com.querydsl</groupId>  
      <artifactId>querydsl-jpa</artifactId>  
      <version>5.0.0</version>  
    </dependency>  
    <!-- other dependency -->

</dependencies>


<plugins>
    <plugin>  
      <groupId>com.mysema.maven</groupId>  
      <artifactId>apt-maven-plugin</artifactId>  
      <version>1.1.3</version>  
      <executions>    
          <execution>      
              <goals>        
                  <goal>process</goal>  
              </goals>      
              <configuration>        
                  <outputDirectory>target/generated-sources/java</outputDirectory>  
                  <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
              </configuration>    
          </execution>  
      </executions>
    </plugin>
</plugins>

처음에 이렇게 설정했는데 Q클래스가 생기지 않았다.

plugin에서 Entity 어노테이션을 Q클래스로 변경해주는데 아무설정을 안해주면 javax 패키지의 Entity만 찾는것이었다.

그래서 jakarta 패키지를 찾도록 설정을 하나 추가해야한다.

<dependency>  
  <groupId>com.querydsl</groupId>  
  <artifactId>querydsl-apt</artifactId>  
  <version>5.0.0</version>  
  <classifier>jakarta</classifier>  
</dependency>

요부분을 classifier를 jakarta로 설정해주면 된다.

JPAQueryFactory를 빈으로 등록하려 할때 EntityManager를 주입시키는데 이때도 jakarta 패키지의 EntityManager를 주입시키기 위해서는 다음과 같은 설정이 필요하다.

<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-jpa</artifactId>
    <version>5.0.0</version>
    <classifier>jakarta</classifier>
</dependency>

최종 pom.xml


<dependencies>
    <!-- other dependency  -->  
    <dependency>  
      <groupId>com.querydsl</groupId>  
      <artifactId>querydsl-apt</artifactId>  
      <version>5.0.0</version>  
      <classifier>jakarta</classifier>
    </dependency>  

    <dependency>  
      <groupId>com.querydsl</groupId>  
      <artifactId>querydsl-jpa</artifactId>  
      <version>5.0.0</version>  
      <classifier>jakarta</classifier>
    </dependency>  
    <!-- other dependency -->

</dependencies>


<plugins>
    <plugin>  
      <groupId>com.mysema.maven</groupId>  
      <artifactId>apt-maven-plugin</artifactId>  
      <version>1.1.3</version>  
      <executions>    
          <execution>      
              <goals>        
                  <goal>process</goal>  
              </goals>      
              <configuration>        
                  <outputDirectory>target/generated-sources/java</outputDirectory>  
                  <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
              </configuration>    
          </execution>  
      </executions>
    </plugin>
</plugins>

참고

querydsl 이슈

728x90
반응형

'개발 > JPA' 카테고리의 다른 글

[JPA] N+1의 모든 것  (1) 2023.10.19
'개발/JPA' 카테고리의 다른 글
  • [JPA] N+1의 모든 것
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    30일챌린지
    명령어
    블록체인
    하이퍼레저
    CSS
    도커
    go언어
    컨테이너
    erc20
    node.js
    ERC721
    nodejs
    node
    js
    30일 챌린지
    React
    go
    프로그래머스
    mysql
    html
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[JPA] maven에서 querydsl Q class 생성
상단으로

티스토리툴바