繁体   English   中英

如何从 Spring 数据 JPA GROUP BY 查询返回对象列表而不是对象数组

[英]How to return a List of Objects instead of Array of Objects from a Spring Data JPA GROUP BY query

我的问题与此线程有关。

以下是我使用按某个字段分组的存储库方法:

@Query(value = "SELECT  t.test_id AS testId, COUNT(t.id) AS total FROM test_instances t GROUP BY t.test_id", nativeQuery = true)
public Object[] getTestStats();

它正在工作,结果如下:

[ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ], [ 5, 1 ], [ 7, 2 ], [ 8, 1 ], [ 9, 1 ] ]

但是,当我将 getTestStats() 的返回类型从Object[]替换为List<?>时,我收到以下错误消息:

{
"cause": null,
"message": "Couldn't find PersistentEntity for type class [Ljava.lang.Object;!"]
}

我想使用List<?>因为如果它正在工作,我想使用自定义投影将其投射到即List<CustomProjection>

我尝试了以下返回类型{List<?>, List<CustomProjection>, CustomProjection[]} 但每件事都返回相同的错误。 希望有人能帮助我,在此先感谢。

如果你想返回一个列表,那么:

  1. 创建一个保存此字段的构造函数
  2. 在您的查询中,您可以创建一个采用此字段的 Object。

例如:

 Select new com.CustomObject(t.test_id, COUNT(t.id))

在这种情况下,您可以使用List<CustomObject>而不是对象数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM