J'utilise
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>3.7.3</version>
pas de problème avec
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.9.4.RELEASE</version>
au lieu d'utiliser
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.10.1.RELEASE</version>
sur le même code, j'ai les erreurs suivantes:
[ERROR] /C:/Prj/Java/Eclipse/Elfolab/src/main/Java/com/interlabsrl/elfolab/persistence/multiple/repository/elettroforesi/springdatajpa/LinguaRepository.Java:[13,8] cannot access com.querydsl.core.types.OrderSpecifier
class file for com.querydsl.core.types.OrderSpecifier not found
[ERROR] /C:/Prj/Java/Eclipse/Elfolab/src/main/Java/com/interlabsrl/elfolab/controller/ricercaPaziente/RicercaPazienteController.Java:[487,33] cannot access com.querydsl.core.types.Predicate
class file for com.querydsl.core.types.Predicate not found
[ERROR] /C:/Prj/Java/Eclipse/Elfolab/src/main/Java/com/interlabsrl/elfolab/controller/ricercaArchivio/RicercaArchivioController.Java:[74,32] no suitable constructor found for QSort(com.mysema.query.types.OrderSpecifier<Java.util.Date>)
constructor org.springframework.data.querydsl.QSort.QSort(com.querydsl.core.types.OrderSpecifier<?>...) is not applicable
(varargs mismatch; com.mysema.query.types.OrderSpecifier<Java.util.Date> cannot be converted to com.querydsl.core.types.OrderSpecifier<?>)
constructor org.springframework.data.querydsl.QSort.QSort(Java.util.List<com.querydsl.core.types.OrderSpecifier<?>>) is not applicable
(argument mismatch; com.mysema.query.types.OrderSpecifier<Java.util.Date> cannot be converted to Java.util.List<com.querydsl.core.types.OrderSpecifier<?>>)
[ERROR] /C:/Prj/Java/Eclipse/Elfolab/src/main/Java/com/interlabsrl/elfolab/controller/ricercaArchivio/RicercaArchivioController.Java:[611,31] no suitable constructor found for QSort(com.mysema.query.types.OrderSpecifier<Java.lang.String>)
constructor org.springframework.data.querydsl.QSort.QSort(com.querydsl.core.types.OrderSpecifier<?>...) is not applicable
(varargs mismatch; com.mysema.query.types.OrderSpecifier<Java.lang.String> cannot be converted to com.querydsl.core.types.OrderSpecifier<?>)
constructor org.springframework.data.querydsl.QSort.QSort(Java.util.List<com.querydsl.core.types.OrderSpecifier<?>>) is not applicable
(argument mismatch; com.mysema.query.types.OrderSpecifier<Java.lang.String> cannot be converted to Java.util.List<com.querydsl.core.types.OrderSpecifier<?>>)
Avez-vous une idée de ce qui ne va pas entre ces versions?
MODIFIER:
En utilisant
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>4.1.0</version>
</dependency>
j'ai encore ces erreurs:
C:\Prj\Java\Eclipse\Elfolab\src\main\Java\com\interlabsrl\elfolab\persistence\multiple\repository\elettroforesi\table\custom\impl\MetodicaRepositoryImpl.Java:11: error: package com.mysema.query.jpa.impl does not exist
import com.mysema.query.jpa.impl.JPAQuery;
Au lieu de
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-*</artifactId>
<version>3.7.3</version>
</dependency>
vous devriez utiliser maintenant
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-*</artifactId>
<version>4.1.3</version>
</dependency>
Les packages contenus dans les fichiers jar ont également été modifiés. Vous devez donc modifier les classes querydsl importées dans votre code source.
Vous devriez mettre à jour la version de votre querydsl à 4.1. Notez que le groupId a également changé.
Dans ici vous pouvez voir que la version 1.10.1.RELEASE utilise la version 4.1 de querydsl et qu’elle pourrait interférer avec vous avec une ancienne version.
Utilisez la configuration suivante trouvée (à peine) ici
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>
et pour le plugin maven
<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/annotations</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
Bien que la majorité ait été déplacée vers com.querydsl, le plugin devrait toujours être com.mysema.