今天在工作的时候发现了一个问题希望能给大家一些启示本人对Hibernate并没有很深的了解只是在项目中使用到肤浅的一些方法下边讲一讲关于Hibernate和Hibernate相关的一些东西
今天在运行一个很简单的save()方法报
Exception in thread main netsfhibernateMappingException:
Dialect does not support identity key generation
at netsfhibernatedialectDialectgerIdentitySelectString(Dialectjava:)
at netsfhibernatepersisterAbstracEntityPersister<init>(AbstractEntityPersisterjava:)
at netsfhibernatepersisterEntityPersister<init>(EntityPersisterjava:)
at netsfhibernatepersisterPersisterFactorycreateClassPersister
一时真还真把我给拦了一下还是发了点时间看了刚开发完的项目是一样的配置一切都很顺利这次怎么报这种异常
刚开始把重点放在了hbmxml文件的映射上可是都是Hibernate 反转控制生成的不会有错
还是网络好呀在CSDN网搜索到了关于这个问题的解决方法自动增长的字段取值可以为incrementidentitysequencehilonative……等
把配置文件由这样的
<id name=kid type=javalangLong>
<column name=KID precision= scale= />
<generator class=identity/>
</id>
改为
<id name=kid type=javalangLong>
<column name=KID precision= scale= />
<generator class=increment/>
</id>
结果一切都运行成功
具体原因我没有深入去理解没有时间只知道在使用 identity的是用和Hibernate的jar 而hibernate中就会抛异常使用increment就不会具体来说在这里Hibernate和Hibernate到底本质区别在哪里呢或许还需要深入的研究