我从Hibernate
获得此异常建筑会议工厂
13:32:09,937 INFO SessionFactoryObjectFactory:105 - 未将工厂绑定到JNDI,未配置JNDI名称
线程“main”中的异常org.hibernate.HibernateException:数据库没有返回本机生成的标识值
这是什么意思,我该如何解决?谢谢!
答案 0 :(得分:43)
我认为这意味着您正在尝试将IDENTITY ID生成器与未正确配置的表列一起使用。它应该是IDENTITY生成器的auto_increment列才能工作。否则,数据库不会返回任何生成的ID。
答案 1 :(得分:5)
我们必须使用以下查询
auto_increment
表格的id
列
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
答案 2 :(得分:3)
修复此问题非常简单,只需确保您正在使用的表的主键列已设置自动增量。
答案 3 :(得分:2)
在数据库中创建表时,您可能忘记将Autoincrement添加到该特定列。
或者
您忘记在Java类中注释"生成值"
这样可以正常使用
答案 4 :(得分:0)
解决此问题的另一种方法是为表格的ID列设置Auto_Increment
答案 5 :(得分:0)
在这种情况下,您无需手动创建表。它将默认使用hibernate创建。 更改或添加hibernate.cfg.xml>> “hibernate.hbm2ddl.auto”字段设置为“update”。