본문 바로가기

Programming/Web-Spring

[Spring] QueryDsl의 Q클래스 빨간줄 에러 뜨는현상 방지

인텔리제이 + maven 사용해서 QueryDSL을 설정해봅시다.

필요 라이브러리

  • querydsl-apt: 쿼리 타입(Q-Class)을 생성할 때 필요
  • querydsl-jpa: QueryDSL JPA 라이브러리
<dependency>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-apt</artifactId>
    <version>3.6.3</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-jpa</artifactId>
    <version>3.6.3</version>
</dependency>

QueryDsl을 사용하기 위해 필요한 라이브러리는 위와 같습니다.

pom.xml을 열어서 안에 추가해주세요.
버전은 사용하시는 환경에 맞게 설정하시면 됩니다.

Q Class 생성 플러그인 추가

QueryDSL을 사용하려면 엔티티를 기반으로하는 쿼리용 클래스를 생성해야 합니다.

해당 클래스를 컴파일시 자동으로 생성하기 위해서 플러그인을 추가해주도록 합시다.

  <build>
    <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.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

위 플러그인을 추가하고 콘솔에서 mvn compile 혹은 인텔리제이에서 maven lifecycle -> compile을 실행하면 outputDirectory에 지정한 위치에 쿼리용 클래스가 생성됩니다.

compile이 완료되면 target/generated-sources/java에 생성된 Q class들을 확인할 수 있습니다.

Q Class 디렉토리를 소스 경로에 추가

인텔리제이 기준으로 File - Project Structure - Modules 메뉴에서 Q Class가 생성된 디렉토리를 소스 경로로 추가할 수 있습니다.

 

728x90