栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[问题记录]mysql中的bigint转换成Long?BigInteger?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[问题记录]mysql中的bigint转换成Long?BigInteger?

先抛出问题:
我写了一个jpa方法,类似下方:

@Query(value = "select a.id from test_user a")
    List findIds();

然后在业务处理的时候,抛错:

java.math.BigInteger cannot be cast to java.lang.Long

去debug一看,果然查出来的id都被转换成了BigInteger,而我是当成Long处理的,所以自然报错了。
id字段的定义明明是bigInt,bigint在java中的对应类型是Long啊,怎么会是BigInteger?
找了很多说法,大概如下:

    mysql版本不对,感觉说法靠谱,因为确实有别的项目用的8.0.19,也同样使用jpa,返回的值就是Long类型。但是将jar包从8.0.13更换为8.0.19,还是报错(未解决,有待研究)数据库字段定义不对,和长度还有什么无符号有符号有关系(不对症)使用JPQL,如下,直接使用,dto代替表名,dto字段名代替表字段名(解决)
@Query(value = "select a.accountNumber from BudgetAccount a,BudgetAccountExpand b " +
            "where a.id = b.id and b.budgetHeaderId = ?1 and a.status = 1")
    List findAccountNumberByHeaderId(Long budgetHeaderId);

每日分享一个知识点,欢迎大家关注和交流

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/732859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号