2016-08-05 5 views
1

Ich habe gerade von Spring-Boot 1.3.6 bis 1.4.0 aktualisiert und ich das nächste Problem bekommen:Frühlings-Boot 1.4 QueryDSL Abhängigkeiten Problem

Der Typ com.querydsl.jpa.JPQLQuery nicht aufgelöst werden kann. Es wird indirekt von erforderlichen .class-Dateien verwiesen

Meine pom.xml Konfiguration ist:

<groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.0.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
... 

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

    <dependency> 
     <groupId>com.querydsl</groupId> 
     <artifactId>querydsl-sql</artifactId> 
     <version>4.1.3</version> 
    </dependency> 

Jeder Hinweis ?.

Danke.

+1

Gibt es einen Grund, warum Sie versuchen QueryDSL Versionen (3.7.4 und 4.1.3) zu mischen? Sie sollten 4.x auf der ganzen Linie verwenden –

+0

Sie sind zwei verschiedene Gruppen com.mysema.querydsl und com.querydsl und werden in zwei verschiedenen Modulen verwendet. Aber der Fehler tritt immer noch auf, selbst wenn com.querydsl (4.1.3) aus meinem Projekt entfernt wird. Die Klasse, wo der Fehler auftritt, hat diesen Import „import com.mysema.query.jpa.JPQLQuery“ – anjeludo

+0

Sie werden in zwei verschiedenen Modulen verwenden aber Sie nicht, dass in der Frage erwähnt und haben sie in der gleichen pom gezeigt? Bitte stoppt Menschen Zeit und bieten ein minimales, präzises Beispiel verschwenden, das das Problem reproduziert –

Antwort

1

Schließlich befestigte ich mein Problem die querydsl-JPA 3.7.4 Bibliothek QueryDSL 4 Aktualisierung (und meinen Code zu ändern). Es scheint, dass Spring Boot 1.4 nicht mehr mit QueryDSL 3 kompatibel ist (da Spring Data JPA 1.10 auf Querydsl 4 aktualisiert wurde).

Danke.

2

Für Bibliotheken, die Frühlings-Boot bietet Integrationen Sie eine Stückliste Abhängigkeit verwendet werden soll. Im Grunde genommen haben dies in Ihrem pom/Eltern pom:

<dependencyManagement> 
<dependencies> 
    <dependency> 
     <!-- Import dependency management from Spring Boot --> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-dependencies</artifactId> 
     <version>1.4.0.RELEASE</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 
</dependencies> 

Und wenn Sie echte Abhängigkeiten angeben, fallen die Version:

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

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-sql</artifactId> 
</dependency> 

Dies garantiert die Kompatibilität, da die BOM Abhängigkeit kümmert Ihnen die richtige Version geben.

Mehr Infos here

0

Ulises Antwort richtig ist und Sie

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.3.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

Räude die Abhängigkeit als auch nutzen könnten. nur überprüfen Sie die dependence version managed by spring boot für Recht Gruppen-ID und Artifact ID

+0

Wie Sie Ihre Antwort von Ulises Antwort anders ist? –

+0

Ich möchte nur eine weitere Option zur Verwaltung der Abhängigkeit mit Eltern-Tag erwähnen. Ein weiterer Grund, das Dokument zu verlinken, ist, dass der Gruppenname, der von Springboot com.mysema.querydsl verwaltet wird, bereits in com.querydsl geändert wurde, also ist der beste Ort, um diese Art von Informationen zu überprüfen, der Link zum Dokument. –