JPA SUM返回long

问题描述 投票:0回答:1

我正在使用JPA,并且有以下查询

@Query(value = "SELECT  NEW com.example.model.company (
 SUM (CASE WHEN c.company_description_id = 3 THEN  CAST (c.value AS int) ELSE 0 END )
 FROM Company c 
 GROUP BY c.company_id ")

c.value在数据库中存储为INT,但是JPA只要错误就返回它。任何想法我在这里做错了。我只想返回存储在数据库中的确切值。这是我查询的简化版本。

hibernate jpa jpql
1个回答
0
投票

根据JPA规范4.5.8

包含在查询结果中的Java类型,使用聚合函数如下:

•COUNT返回Long。

•MAX,MIN返回对其应用状态字段的类型。

•AVG返回Double。

•SUM在应用于以下状态字段时返回Long整数类型(BigInteger除外);应用于状态时加倍浮点类型的字段;适用于状态的BigIntegerBigInteger类型的字段;和BigDecimal应用于状态字段时类型为BigDecimal。

© www.soinside.com 2019 - 2024. All rights reserved.