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

来源:互联网 发布:java int转string方法 编辑:程序博客网 时间:2024/05/21 02:35
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等关键字为其他非关键字的字符;

0 0