hibernate: Field 'cutid' doesn't have a default value

这个错误的意思是:”字段cutid没有默认值”,一般出现这个错误的原因是在hibernate的配置文件中设置了主键自增,但是在数据库中没有设置主键自增,就会报这个错误.
但是,这个错误不一定是由主键引起的,只要有字段在表中设置不为空,但是用hibernate插入时,没有赋值,也会包这个错误.
今天我就遇到引起这个报错的原因就比较奇葩,过程是这样子的:
在用hibernate插入一条数据的时候,包了这个错误: Field ‘cutid’ doesn’t have a default value.
下面分别是实体类,和实体表
这里写图片描述

这里写图片描述
在百度之后,大部分都是认为是数据库主键没有设置递增的原因.但是检查之后发现,在数据库中已经设置了主键递增了.在仔细观察了很久之后,发现了一个问题:
报错是:Field ‘cutid’ doesn’t have a default value
而我的主键名字是:custid .这就很奇怪,为什么id的名字不一样呢.我以为是在配置文件中出错了.但还是检查之后还是没有有错误.
最后,终于让我找到了为什么出现了这个错误:
仔细观察一下那张表,你会发现在表的最后一行,即最后一个属性,发现一个名为cutid的列,………………….没错,就是因为我在创建表的时候不小心创建多一列,但是在hibernate配置文件中,我是不知道有个属性的,所以没有配置这属性,而且这个属性的值不能为空,导致了报上面的错误.对于这个结果,我是有点哭笑不得的,原本以为是其他复杂的错误,谁知道是因为自己的粗心大意,创建多一个属性导致的…………………….

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值