2016-05-22 44 views
5

sto usandoquerydsl-JPA 3.7.3 errore quando utilizzato con la primavera-dati-JPA 1.10.0

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

alcun problema con

<groupId>org.springframework.data</groupId> 
<artifactId>spring-data-jpa</artifactId> 
<version>1.9.4.RELEASE</version> 

utilizzando invece

<groupId>org.springframework.data</groupId> 
<artifactId>spring-data-jpa</artifactId> 
<version>1.10.1.RELEASE</version> 

sullo stesso codice Ho i seguenti errori:

[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<?>>) 

Qualche idea su cosa c'è di sbagliato tra queste versioni?

EDIT:

Utilizzando

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

ho ancora questi errori:

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; 

risposta

0

Si consiglia di aggiornare la versione del querydsl a 4,1. Si noti che anche il groupId è cambiato.

In here è possibile notare che il 1.10.1.RELEASE utilizza il 4.1 di querydsl e che potrebbe interferire con l'utente utilizzando una versione precedente.

6

Invece di

<dependency> 
    <groupId>com.mysema.querydsl</groupId> 
    <artifactId>querydsl-*</artifactId> 
    <version>3.7.3</version> 
</dependency> 

si dovrebbe usare ora

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

I pacchetti all'interno dei file jar anche sono stati modificati in modo da avere a cambiare classe querydsl importati nel codice sorgente.

0

utilizzare la seguente configurazione trovato (a malapena) here

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

e per l'esperto di plug

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

Anche se la maggior parte sono stati spostati al com.querydsl il plugin dovrebbe essere attualmente ancora com. mysema.