QueryDsl生成的类抛出未定义的构造方法

问题描述

我在Spring Boot项目中添加了Query DSL。并且,通过“ mvn compile”生成了QType类。一些生成的类具有如下编译错误The constructor QAddress(Class<Address>,PathMetadata,PathInits) is undefined用于以下构造函数

public QAddress(String variable) {
    this(Address.class,forVariable(variable),INITS);
}

public QAddress(Path<? extends Address> path) {
    this(path.getType(),path.getMetadata(),PathInits.getFor(path.getMetadata(),INITS));
}

您能否让我知道我在这方面缺少什么?

pom.xml

<dependency> 
        <groupId>com.querydsl</groupId> 
        <artifactId>querydsl-apt</artifactId> 
        <version>4.4.0</version>
        </dependency>
    <dependency> 
        <groupId>com.querydsl</groupId> 
        <artifactId>querydsl-jpa</artifactId> 
        <version>4.4.0</version> 
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.1</version>
    </dependency>

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

解决方法

尝试包括querydsl-core依赖项:

<!-- https://mvnrepository.com/artifact/com.querydsl/querydsl-core -->
    <dependency>
        <groupId>com.querydsl</groupId>
        <artifactId>querydsl-core</artifactId>
        <version>4.4.0</version>
    </dependency>

将其包含在pom.xml中后进行编译。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...