Сгенерированный QueryDSL класс выбрасывает неопределенный конструктор

#spring-boot #spring-data-jpa #querydsl

#spring-boot #spring-data-jpa #querydsl

Вопрос:

Я добавил запрос DSL в свой проект spring boot. И сгенерировал класс QType с помощью ‘mvn compile’. В некоторых сгенерированных классах есть ошибки компиляции, как 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>
  

Ответ №1:

Попробуйте включить зависимость 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 .