首页 / 软件开发 / JAVA / Hibernate3.1与Hibernate3.2
Hibernate3.1与Hibernate3.22011-09-14 CSDN博客 钟美秀今天在工作的时候发现了一个问题,希望能给大家一些启示,本人对Hibernate并没有很深的了解,只 是在项目中使用到肤浅的一些方法,下边讲一讲关于Hibernate3.1和Hibernate3.2相关的一些东西。今天在运行一个很简单的save()方法报:Exception in thread "main" net.sf.hibernate.MappingException:
Dialect does not support identity key generation
at net.sf.hibernate.dialect.Dialect.gerIdentitySelectString(Dialect.java:305)
at net.sf.hibernate.persister.AbstracEntityPersister.<init> (AbstractEntityPersister.java:646)
at net.sf.hibernate.persister.EntityPersister.<init>(EntityPersister.java:690)
at net.sf.hibernate.persister.PersisterFactory.createClassPersister一时真还真把我给拦了一下,还是发了点时间看了,刚开发完的项目是一样的配置一切都很顺利,这 次怎么报这种异常,刚开始把重点放在了。hbm.xml文件的映射上,可是都是Hibernate 反转控制生成的,不会有错。还是网络好呀,在CSDN网搜索到了关于这个问题的解决方法,自动增长的字段:取值可以为increment 、identity、sequence、hilo、native……等把配置文件由这样的:<id name="kid" type="java.lang.Long">
<column name="KID" precision="22" scale="0" />
<generator class="identity"/>
</id>改为<id name="kid" type="java.lang.Long">
<column name="KID" precision="22" scale="0" />
<generator class="increment"/>
</id>结果一切都运行成功。具体原因我没有深入去理解,没有时间,只知道,在使用 identity的是用和Hibernate3.1的jar, 而 hibernate3.2中就会抛异常,使用increment就不会。具体来说,在这里Hibernate3.1和Hibernate3.2到 底本质区别在哪里呢,或许还需要深入的研究。