null id in XXXentity (don't flush the Session after an exception occurs。。。。(HIbernate 实体类包含关键字)

insert into t_XXX (url, describe, desc) values ('aa', 'bb', 'cc'');

如上:describe与desc为数据库关键字,一旦使用为字段名就会抱null id 这样的错;

网上还有人说其他原因:

  1. 据库与映射文件不对应,数据库设置了不为null,但hibernate里的映身文件设置了为null。就是说在数据的设计中比如mysql,我们为某个非空字段设置了默认值。如果我们在通过Hibernate增加一条记录的时候我们必须显式的通过setXxx方法为该字段(/属性)赋值(/默认值)。因为在保存之前Hibernate会检查该非空字段对应的实体属性是否为空;
  2. id不是autoincrement(个人觉得不会);
  3. 其他原因。

总结: 我个人碰到这个问题的原因是字段使用了关键字,网上找了许久都是说其他原因的,所以总结一下,方便自己mark下。

解决的方法:1.hibernate实体类添加@Column(name="`desc`")注解在关键字加上··(鍵盤ESC下方,1左方的按鈕,~那個符號的按鈕);

                        2.改desc等关键字为其他非关键字的字符;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值