1

我之前已经将我的项目设置为使用 hibernate3-maven-plugin 和 org.hibernate.dialect.SQLServerDialect 作为 hibernate.dialect 并且一切正常。

但是当我把方言改成org.hibernate.dialect.SQLServer2005Dialect时,hibernate3-maven-plugin遇到如下错误:

执行 org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl: java.land.NoSuchMethodError: org.hibernate.dialect.SQLServer2005Dialect.registerColumnType(IJLjava/lang/String;)V 时遇到 API 不兼容

hbm2ddl 是否支持 SQLServer2005Dialect 或 SQLServer2008Dialect(我也遇到与 2008 相同的错误)?

我正在使用 2.2 版的插件和 hibernate.4.1.0.Final 和 JPA 2.0。

4

1 回答 1

1

刚刚因为 gradle 和 glassfish 的同样错误而失去了几天。我从源代码中添加了自己的 SqlServer2005Dialect,并注释掉了 registerColumnType() 行。从这里,错误变为“java.lang.NoSuchFieldError: INSTANCE”

这是一个更适合google 的错误,基本上意味着您有 2 组休眠 jar。

在我的例子中,在将 hibernate 放入 gradle 构建之前,我已经通过 glassfish 安装了 hibernate。从 glassfish 卸载休眠修复了我的错误,我现在可以运行 2008 或 2005 的方言。

于 2012-08-02T15:38:01.430 回答