我正在使用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只要错误就返回它。任何想法我在这里做错了。我只想返回存储在数据库中的确切值。这是我查询的简化版本。
根据JPA规范4.5.8
包含在查询结果中的Java类型,使用聚合函数如下:
•COUNT返回Long。
•MAX,MIN返回对其应用状态字段的类型。
•AVG返回Double。
•SUM在应用于以下状态字段时返回Long整数类型(BigInteger除外);应用于状态时加倍浮点类型的字段;适用于状态的BigIntegerBigInteger类型的字段;和BigDecimal应用于状态字段时类型为BigDecimal。