2016-05-22 17 views
5

Tôi đang sử dụngquerydsl-JPA 3.7.3 lỗi khi sử dụng với lò xo dữ liệu JPA 1.10.0

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

không có vấn đề với

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

thay vì sử dụng

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

trên cùng một mã Tôi đã gặp các lỗi sau:

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

Bất kỳ ý tưởng nào về sự cố giữa các phiên bản này?

EDIT:

Sử dụng

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

tôi vẫn còn có các lỗi này:

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; 

Trả lời

0

Bạn nên cập nhật các phiên bản của querydsl của bạn để 4.1. Lưu ý rằng groupId cũng đã thay đổi.

Trong here bạn có thể thấy rằng 1.10.1.RELEASE sử dụng 4.1 của querydsl và điều đó có thể ảnh hưởng đến bạn bằng phiên bản cũ.

6

Thay vì

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

bạn nên sử dụng tại

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

Các gói bên trong các tập tin jar cũng đã được thay đổi, do đó bạn phải thay đổi lớp querydsl nhập khẩu trong mã nguồn của bạn.

0

Sử dụng các cấu hình sau đây được tìm thấy (chỉ) 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> 

và cho maven cắm

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

Mặc dù phần lớn đã được chuyển đến com.querydsl plugin hiện nên vẫn có com. mysema.

Các vấn đề liên quan