繁体   English   中英

Spring Data Jpa查询DSL Q实体类未生成

[英]Spring Data Jpa Query DSL Q Entityclasses not generating

这是pom.xml的要点。 我正在使用的查询DSL版本是3.6.2

    <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-apt</artifactId>
    </dependency>
    <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-jpa</artifactId>
    </dependency>
</dependencies>
<build>
<plugins>
    <plugin>
        <groupId>org.bsc.maven</groupId>
        <artifactId>maven-processor-plugin</artifactId>
        <version>2.2.4</version>
        <configuration>
            <defaultOutputDirectory>
                ${project.build.directory}/generated-sources
            </defaultOutputDirectory>
            <processors>
                <processor>org.mapstruct.ap.MappingProcessor</processor>
            </processors>
        </configuration>
        <executions>
            <execution>
                <id>process</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>process</goal>
                </goals>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>${mapstruct.version}</version>
            </dependency>
        </dependencies>
    </plugin>
    <plugin>
        <groupId>com.mysema.maven</groupId>
        <artifactId>maven-apt-plugin</artifactId>
        <version>1.0.2</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>process</goal>
                </goals>
                <configuration>
                    <!-- Specifies the directory in which the query types are generated -->
                    <outputDirectory>target/generated-sources/querydsl</outputDirectory>
                    <!-- States that the APT code generator should look for JPA annotations -->
                    <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>
</build>

每当我运行mvn clean install时,就会出现此异常消息

[ERROR] diagnostic: C:\Users\users\app\app-ims\app-ims-core\src\main\java\org\app\genesis\inventory\repo\ProductRepoImpl.java:6: error: cannot find symbol
import org.brightworks.genesis.inventory.model.QProduct;
                                              ^
  symbol:   class QProduct
  location: package org.app.genesis.inventory.model

这是全班学生的要旨。

import com.mysema.query.jpa.impl.JPAQuery;
import com.mysema.query.types.ConstructorExpression;
import org.brightworks.genesis.inventory.dto.ProductDTO;
import org.brightworks.genesis.inventory.model.QProduct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;

import javax.persistence.EntityManager;
import java.util.List;

    /**
     * 
     */
    public class ProductRepoImpl implements ProductRepoCustom {

        @Autowired
        private EntityManager em;

        @Override
        public Page<ProductDTO> search(String term, Pageable pageable) {
            JPAQuery query = new JPAQuery(em);
            QProduct product = QProduct.product;

模型和存储库位于同一项目中,但是未生成Q Entity类。 我该如何解决?

您的mvn apt插件之间存在冲突。 您有两个,只需要一个。 只需相应地更改它们即可。 这是一个例子。

    <plugin>
        <groupId>org.bsc.maven</groupId>
        <artifactId>maven-processor-plugin</artifactId>
        <version>2.2.4</version>
        <configuration>
            <defaultOutputDirectory>
                ${project.build.directory}/generated-sources
            </defaultOutputDirectory>
            <processors>
                <processor>org.mapstruct.ap.MappingProcessor</processor>
                <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
            </processors>
        </configuration>
        <executions>
            <execution>
                <id>process</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>process</goal>
                </goals>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>${mapstruct.version}</version>
            </dependency>
        </dependencies>
    </plugin>

如果您愿意,也可以进行相反的操作并使用apt-maven-plugin ,其配置非常相似:

<plugin>
    <groupId>com.mysema.maven</groupId>
    <artifactId>apt-maven-plugin</artifactId>
    <version>1.1.3</version>
    <dependencies>
        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <version>${querydsl.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>${mapstruct.version}</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>process</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
                <processors>
                    <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                    <processor>org.mapstruct.ap.MappingProcessor</processor>
                </processors>
            </configuration>
        </execution>
    </executions>
</plugin>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM