开发者社区> 问答> 正文

主键是BigInteger类型 ,在插入数据的时候报错Field 'xxx' d?报错



有高手伴我看看是怎么回事。此数据库是导入的,主键是自增长的。是哪里出问题了

展开
收起
爱吃鱼的程序员 2020-06-08 20:43:38 600 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Field'BasestationId'doesn'thaveadefaultvalue

    插入的表有这个字段,并且不能为空,你的insert语句没有这个字段,肯定会报错

    解决方法

    1、insert语句增加这个字段并设置值

    2、数据库表结构该字段修改成可以为空

    3、数据库表结构该字段设置一个默认值

    以上3种任选其一即可

    回复 @一只懒羊羊7788:之前也遇到过类似的情况,想办法吧hibernate出入数据的sql打印出来,然后在看看运行看看,然后在看怎么解决 @NULL_caption回复 @NULL_caption:用的是hibernate回复 @一只懒羊羊7788:将打印出来的sql在数据运行一下,看看是否正确回复 @1哥:insert不用写语句,直接用的是hibernate啊数据库设计的是自增吗?回复 @小韦飞狼:是自增

    建议分几步排查原因:

    1、确认数据库是否可以支持自动增长ID。(可以将打印出来的SQL在数据库中执行,看看是否异常)如果是mysql数据库建议不使用bigInteger类型,更换为Long类型。

    2、检查一下代码是否配置有问题。

    3、查看当前的使用的hibernate的数据库方言是否匹配你现在使用的数据库版本类型。(因旧版的hibernate针对不同的数据库有更新方言文件的配置)

    4、如果上述都没有问题。并且看到已有的截图中已经存在数据说明之前运行是正常的。可以考虑排查一下操作代码是否问题?

    仅仅是建议如此排查问题。具体的问题需要具体分析。

    回复 @boonbai:已经解决了,多谢。是数据库主键么有设置自增长
    2020-06-08 20:43:57
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载