【问题标题】:Unable to reverse engineer to generate pojo using hibernate in eclipse无法逆向工程以在 Eclipse 中使用休眠生成 pojo
【发布时间】:2016-11-21 09:22:51
【问题描述】:

我在使用 hibernate 5 从数据库进行逆向工程时遇到问题。我能够生成 hibernate.reveng.xml 文件,但是当我使用 Hibernate 代码生成配置运行时,它给了我如下所述的错误。

我尝试过添加“休眠”。到我的 xml 文件但同样的事情,我可以生成 hibernate.reveng.xml 但无法运行 Hibernate 代码生成配置。

这是我的 xml 文件:

<hibernate-configuration>
 <session-factory>
  <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
  <property name="connection.password">Password123!</property>
  <property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=TestDB</property>
  <property name="connection.username">sa</property>
  <property name="dialect">org.hibernate.dialect.SQLServer2012Dialect</property>
 </session-factory>
</hibernate-configuration>

这是我面临的错误。

org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:257)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:231)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:240)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.cfg.JDBCMetaDataConfiguration.handleTypes(JDBCMetaDataConfiguration.java:231)
    at org.hibernate.cfg.JDBCMetaDataConfiguration.getMetadataCollector(JDBCMetaDataConfiguration.java:90)
    at org.hibernate.cfg.JDBCMetaDataConfiguration.getMetadataBuildingContext(JDBCMetaDataConfiguration.java:105)
    at org.hibernate.cfg.JDBCMetaDataConfiguration.readFromJDBC(JDBCMetaDataConfiguration.java:123)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.jboss.tools.hibernate.runtime.common.Util.invokeMethod(Util.java:43)
    at org.jboss.tools.hibernate.runtime.common.AbstractConfigurationFacade.readFromJDBC(AbstractConfigurationFacade.java:216)
    at org.hibernate.eclipse.console.common.ConsoleExtension$2.execute(ConsoleExtension.java:308)
    at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63)
    at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:108)
    at org.hibernate.eclipse.console.common.ConsoleExtension.buildConfiguration(ConsoleExtension.java:266)
    at org.hibernate.eclipse.console.common.ConsoleExtension.runExporters(ConsoleExtension.java:174)
    at org.hibernate.eclipse.console.common.ConsoleExtension.launchExporters(ConsoleExtension.java:110)
    at org.hibernate.eclipse.launch.CodeGenerationLaunchDelegate.launch(CodeGenerationLaunchDelegate.java:266)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

【问题讨论】:

  • 希望以下链接能帮助您解决问题!!! stackoverflow.com/questions/17233399/…
  • Hibernate 可以自动确定要使用的正确方言,但为了做到这一点,它需要实时连接到数据库。如果您尝试连接的数据库不存在,您也会看到这个错误。确保数据库凭据正确。
  • @Mihir 我删除了方言,但它不起作用。我很确定我的连接是正确的。我可以在刷新表格后从休眠视图中查看
  • @shadow 您能否发布一些代码,您是如何加载休眠配置文件、获取数据库连接和执行数据库操作的?

标签: java eclipse hibernate sql-server-2014


【解决方案1】:

试试这个。

&lt;property name="dialect"&gt;org.hibernate.dialect.SQLServer2012Dialect&lt;/property&gt; 更改为&lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.SQLServer2012Dialect&lt;/property&gt;

【讨论】:

  • 你遇到了什么异常?
【解决方案2】:

我最终删除了整个配置文件并重做所有步骤以根据我发布的内容对我的 pojo 进行逆向工程,并且现在正在工作。但我不知道为什么。

【讨论】:

    猜你喜欢
    • 2016-11-23
    • 2016-08-18
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2011-08-08
    • 2012-09-05
    • 1970-01-01
    相关资源
    最近更新 更多