2017-06-01 215 views
2

我不知道为什么,但我无法使用spring引导和查询dsl生成查询类。QueryDsl不会使用Spring Boot和Maven生成Q类

这是我的pom.xml:

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-aop</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-mail</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-validation</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.microsoft.sqlserver</groupId> 
     <artifactId>mssql-jdbc</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 

<dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-core</artifactId> 
     <version>4.1.4</version> 
    </dependency> 

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

    <dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-jpa</artifactId> 
     <version>4.1.4</version> 
    </dependency> 
      <!-- Joda-time --> 
    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.9.9</version> 
    </dependency> 
    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time-hibernate</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time-jsptags</artifactId> 
     <version>1.1.1</version> 
    </dependency> 


</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>com.mysema.maven</groupId> 
      <artifactId>apt-maven-plugin</artifactId> 
      <version>1.1.3</version> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>process</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/generated-sources</outputDirectory> 
         <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

    </plugins> 

我ASLO添加到构建路径生成的文件夹,但它是空的。 我忘记了查询dsl的任何配置吗?

+0

我可以知道为什么你不从'com.mysema.maven'插件中排除'querydsl-apt'吗? – harshavmb

+0

此外,经常项目刷新为eclipse缓存fiesystem,我们错过识别 – harshavmb

+0

为什么我必须从com.mysema.maven插件中排除querydsl-apt? – Teo

回答

6

我用错了处理器,我必须使用com.querydsl.apt.jpa.JPAAnnotationProcessor,而不是com.mysema.query.apt.jpa.JPAAnnotationProcessor

所以这是整个插件:

<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> 
1

使用com.mysema.query.apt.jpa.JPAAnnotationProcessor也为我工作。

 <plugin> 
      <groupId>com.mysema.maven</groupId> 
      <artifactId>maven-apt-plugin</artifactId> 
      <version>1.0.4</version> 
      <executions> 
       <execution> 
        <id>process-common-model</id> 
        <goals> 
         <goal>process</goal> 
        </goals> 
        <phase>generate-sources</phase> 
        <!-- 
        <configuration> 
         <sourceDirectory>src/main/java/com/uniarb/autogds/dao/entity</sourceDirectory> 
        </configuration> 
        --> 
       </execution> 
      </executions> 
      <configuration> 
       <outputDirectory>target/generated-sources/apt</outputDirectory> 
       <processors> 
        <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> 
       </processors> 
       <options> 
        <querydsl.entityAccessors>true</querydsl.entityAccessors> 
        <querydsl.createDefaultVariable>true</querydsl.createDefaultVariable> 
        <querydsl.packageSuffix>.apt</querydsl.packageSuffix> 
       </options> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>com.mysema.querydsl</groupId> 
        <artifactId>querydsl-apt</artifactId> 
        <version>3.7.3</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
相关问题