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

Spu*_*ick 7 maven querydsl

Mysema Querydsl使用的一些在线示例依赖于该JPAQuery#list()方法,例如,此stackoverflow答案包含GROUP BY/COUNT聚合示例.在官方文件中也提到了它.

但是,我没有在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>
Run Code Online (Sandbox Code Playgroud)

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

Tun*_*aki 5

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

从阅读发行说明中可以了解到,第4版在代码库中引入了许多重大更改,这些更改会破坏旧代码。您有两种选择:

  • 降级到3.x行的最后一个版本,即3.6.8并使用该list方法
  • 保持版本4.0.4并改用该fetch方法。查看此GitHub问题以获取更改列表。

  • @Tisha我认为,它是`select(...)。fetch()`,[例如参见此处](https://github.com/querydsl/querydsl/pull/1217/files#diff-7e7ef10caa3efd492957e81c151a23efL122)。 (2认同)