使用JBOSS工具 / Hibernate配置连接到DB的错误



我正在尝试使用jboss工具Hibernate代码生成来为我的PostgreSQL DB中的表生成Daos和Hibernate映射。我已经设置了冬眠配置,但是当我尝试连接时,我会得到此错误:

java.lang.NoSuchFieldError: INSTANCE
    at org.hibernate.type.StandardBasicTypes.<clinit>(StandardBasicTypes.java:54)
    at org.hibernate.spatial.dialect.postgis.PostgisDialect.registerTypesAndFunctions(PostgisDialect.java:55)
    at org.hibernate.spatial.dialect.postgis.PostgisDialect.<init>(PostgisDialect.java:42)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.hibernate.dialect.resolver.DialectFactory.constructDialect(DialectFactory.java:157)
    at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:109)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:146)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2155)
    at org.hibernate.console.ConsoleConfiguration$6.execute(ConsoleConfiguration.java:430)
    at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63)
    at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:107)
    at org.hibernate.console.ConsoleConfiguration.getSettings(ConsoleConfiguration.java:428)
    at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter$2.execute(LazyDatabaseSchemaWorkbenchAdapter.java:119)
    at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63)
    at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:107)
    at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.readDatabaseSchema(LazyDatabaseSchemaWorkbenchAdapter.java:115)
    at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.getChildren(LazyDatabaseSchemaWorkbenchAdapter.java:65)
    at org.hibernate.eclipse.console.workbench.BasicWorkbenchAdapter.fetchDeferredChildren(BasicWorkbenchAdapter.java:106)
    at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

我已经在第54行中的标准基础型中浏览了 public static final BooleanType BOOLEAN = BooleanType.INSTANCE;的第54行,并且我遵循了Booleantype的字段。

我正在使用Hibernate-Core-4.1.8.final.jar,Hibernate-Spatial-4.0-m1.jar,在我的Hibernate配置中," Hibernate版本"是" 4.0"。

检查您的classpath上没有两个冬眠版本

问题与我的冬眠配置有关,特别是驱动程序和方言。最初,我有

<property name="hibernate.connection.driver_class">org.postgis.DriverWrapper</property>
<property name="hibernate.dialect">org.hibernate.spatial.dialect.postgis.PostgisDialect</property>

我在上面的问题中收到了错误堆栈跟踪。我将这些属性更改为

<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>

,并且能够通过Hibernate工具连接到DB。如果有人在乎,我在这里创建了一个JIRA来跟踪问题

显然所有的冬眠罐,编辑器中的配置需要匹配。Geofflittle的答案仅在确保冬眠空间 Hibernate-Core Hibernate版本中的编辑下拉下的Selection的答案上才有斑点。

最新更新