org.hibernate.HibernateException:数据库未返回本机生成的标识值

我从Hibernate得到这个例外

建筑会议工厂
13:32:09,937 INFO SessionFactoryObjectFactory:105 – 未将工厂绑定到JNDI,未配置JNDI名称
线程“main”中的exceptionorg.hibernate.HibernateException:数据库没有返回本机生成的标识值

这意味着什么,我该如何解决? 谢谢!

我认为这意味着您正在尝试将IDENTITY ID生成器与未正确配置的表列一起使用。 它应该是IDENTITY生成器的auto_increment列才能工作。 否则,数据库不会返回任何生成的ID。

我们必须使用下面的查询auto_increment表的id

 ALTER TABLE document MODIFY COLUMN document_id INT auto_increment 

修复此问题非常简单,只需确保您正在使用的表的主键列已设置自动增量。

在数据库中创建表时,您可能忘记将AutoIncrement添加到该特定列。

要么

你忘了在Java类中注释为“Generated Value”

这样可以正常工作

解决此问题的另一种方法是为表的ID列设置Auto_Increment

在这种情况下,您不需要手动创建表。 它将默认使用hibernate创建。 更改或添加hibernate.cfg.xml >>“hibernate.hbm2ddl.auto”字段设置为“更新”。