Mysema Querydsl:没有JPAQuery#list()方法

时间:2015-10-13 12:29:13

标签: maven querydsl

Mysema Querydsl 用法的一些在线示例依赖于JPAQuery#list()方法,例如this stackoverflow answer包含GROUP BY / COUNT聚合示例。它也在official documentation中提及。

但是,我没有在JPAQuery类上看到这种方法。它没有显示在IDE的自动完成中,并且它不存在于Maven下载的JAR文件中。

我已将这些依赖项添加到我的Maven项目中:

<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-apt</artifactId>
    <version>4.0.4</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-jpa</artifactId>
    <version>4.0.4</version>
</dependency>

为什么JPAQuery#list()方法不存在?

1 个答案:

答案 0 :(得分:3)

当Querydsl从3.x升级到4.x行时,方法JPAQuery.list已被删除。由于您使用的是4.0.4版,因此该方法不再可用。

正如我在阅读release notes时所理解的那样,版本4在代码库中引入了许多重大更改,从而破坏了旧代码。您有两种选择:

  • 降级到3.x行的最后一个版本,即3.6.8并使用list方法
  • 保留版本4.0.4并改为使用fetch方法。请查看this GitHub issue以获取更改列表。