【发布时间】:2018-05-25 07:57:48
【问题描述】:
我正在使用本机查询来获取bigint 数字列表,然后我计划对其进行迭代。
@Query(value="SELECT bigint_field FROM complex_innerquery", nativeQuery=true)
Collection<Long> getAllBigIntFieldValues();
如果我使用如上所示的 Long 数据类型,则会引发以下错误
java.math.BigInteger 不能转换为 java.lang.Long
JPA 似乎默认将 bigint 从数据库转换为 BigInteger。
显然,与 Long 相比,BigInteger 是一个巨大的数据类型。尽管在存储时,我的字段在定义的实体中是 Long 类型,因此,在将 BigInteger 转换回 Long 值时不会丢失数据,还有其他方法可以摆脱 BigInteger 数据类型?更具体地说,我不希望调用 getAllBigIntFieldValues 方法的方法将 BigInteger 显式转换为 LongValue。
【问题讨论】:
-
关于为什么会发生这种情况的原因,this question 提供了一些见解。
标签: java postgresql java-8 spring-data spring-data-jpa