querydsl-jpa与spring-data-jpa 1.10.0一起使用时出现3.7.3错误

Eta*_*nio 6 querydsl spring-data-jpa

我正在使用

<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>3.7.3</version>
Run Code Online (Sandbox Code Playgroud)

没问题

<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.9.4.RELEASE</version>
Run Code Online (Sandbox Code Playgroud)

而是使用

<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.10.1.RELEASE</version>
Run Code Online (Sandbox Code Playgroud)

在相同的代码我有以下错误:

[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<?>>)
Run Code Online (Sandbox Code Playgroud)

有关这些版本之间有什么问题的想法吗?

编辑:

运用

    <dependency>
        <groupId>com.querydsl</groupId>
        <artifactId>querydsl-jpa</artifactId>
        <version>4.1.0</version>
    </dependency>   
Run Code Online (Sandbox Code Playgroud)

我仍然有这些错误:

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;
Run Code Online (Sandbox Code Playgroud)

Pet*_*iff 7

代替

<dependency>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-*</artifactId>
    <version>3.7.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

你现在应该使用

<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-*</artifactId>
    <version>4.1.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

jar文件中的包也已更改,因此您必须在源代码中更改导入的querydsl类.


Dav*_*ães 2

您应该将 querydsl 的版本更新到 4.1。请注意,groupId 也已更改。

这里您可以看到 1.10.1.RELEASE 使用 querydsl 的 4.1,这可能会干扰您使用旧版本。