insert into t_XXX (url, describe, desc) values ('aa', 'bb', 'cc'');
如上:describe与desc为数据库关键字,一旦使用为字段名就会抱null id 这样的错;
网上还有人说其他原因:
- 据库与映射文件不对应,数据库设置了不为null,但hibernate里的映身文件设置了为null。就是说在数据的设计中比如mysql,我们为某个非空字段设置了默认值。如果我们在通过Hibernate增加一条记录的时候我们必须显式的通过setXxx方法为该字段(/属性)赋值(/默认值)。因为在保存之前Hibernate会检查该非空字段对应的实体属性是否为空;
- id不是autoincrement(个人觉得不会);
- 其他原因。
总结: 我个人碰到这个问题的原因是字段使用了关键字,网上找了许久都是说其他原因的,所以总结一下,方便自己mark下。
解决的方法:1.hibernate实体类添加@Column(name="`desc`")注解在关键字加上··(鍵盤ESC下方,1左方的按鈕,~那個符號的按鈕);
2.改desc等关键字为其他非关键字的字符;