问题描述
向数据库表中插入数据保存操作时报错,信息如下:org.hibernate.HibernateException:Thedatabasereturnednonativelygeneratedidentityvalueatorg.hibernate.id.IdentifierGeneratorFactory.getGeneratedIdentity(IdentifierGeneratorFactory.java:33)atorg.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1970)atorg.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405)atorg.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37)atorg.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)atorg.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269)atorg.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)atorg.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)atorg.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)atorg.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)atorg.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:98)atorg.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)atorg.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:502)atorg.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:494)atorg.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:490)
hibernate映射文件主键配置如下:<idname="id"type="int"column="ID"><generatorclass="native"><paramname="sequence">SEQ_SYSTEM_DEPARTMENT</param></generator></id>
数据库中自动生成我已经选择:数据库是mysql
解决方案
解决方案二:
因为mysql中没有sequence,我去掉<paramname="sequence">SEQ_SYSTEM_DEPARTMENT</param>之后还是不行。