我有一个数据库表Cars,每一行代表不同的汽车模型,有不同的id,品牌,model_name和数量。我想用Hibernate编写一个查询,按品牌获取最受欢迎的汽车数量,例如DB 5大众Polo,3大众Ti官,4 Skoda Octavia,8 Skoda Rapid,我想得到一个结果: Volkswagen :5 Skoda :8
这是我的疑问:
@Query(value = "SELECT brand, MAX(amount) FROM cars GROUP BY brand ORDER BY amount DESC", nativeQuery = true)
List<Car> getAmountOfMostPopularCarsByBrand();接口车是这样的:
interface Car {
String getBrand();
Long getAmount();
}该查询在IntelliJ中运行良好,它会带来预期的结果,但是当我尝试在应用程序中使用它时:
List<Car> cars = getAmountOfMostPopularCarsByBrand()我得到了有好的“品牌”字段的对象列表,但是对于空的“mapped”字段,它只是没有得到正确的映射(翻译)。知道怎么修吗?
发布于 2022-06-21 18:01:39
我认为您需要为MAX(amount)使用别名
@Query(value = "SELECT brand, MAX(amount) as amount FROM cars GROUP BY brand ORDER BY amount DESC", nativeQuery = true)我认为转换器在查询结果中查找与类中属性的名称匹配的标题。
您的查询将返回头部brand | MAX(amount)的结果,我的查询将有正确的结果:brand | amount。
除此之外,这两个查询是相同的。
https://stackoverflow.com/questions/72704697
复制相似问题