web-dev-qa-db-ja.com

spring-data-jpa1.10.0で使用した場合のquerydsl-jpa3.7.3エラー

使っています

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

問題ありません

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

代わりに

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

同じコードで、次のエラーが発生しました。

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

これらのバージョンの何が問題になっているのかについて何か考えはありますか?

編集:

使用する

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

私はまだこれらのエラーがあります:

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;
6
Etantonio

の代わりに

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

今すぐ使用する必要があります

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

Jarファイル内のパッケージも変更されているため、ソースコードでインポートされたquerydslクラスを変更する必要があります。

7
PetroCliff

Querydslのバージョンを4.1に更新する必要があります。 groupIdも変更されていることに注意してください。

here では、1.10.1.RELEASEがquerydslの4.1を使用しており、古いバージョンの使用を妨害している可能性があることがわかります。

2

次の構成を使用してください(ほとんど) ここ

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

そして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>

大部分がcom.querydslに移動されたとしても、プラグインは現在もcom.mysemaであるはずです。

0
Vadim