首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernate表名模式不能为空或空

问hibernate表名模式不能为空或空
EN

Stack Overflow用户
提问于 2016-10-20 11:37:03
回答 1查看 1.3K关注 0票数 0

无法在eclipse中使用hibernate将工程从db转换为java代码。

创建hibernate控制台配置后,我看到错误:无法从数据库获取表列表。可能是JDBC驱动程序问题。对于表名模式的堆栈跟踪,不能为空或空。

我不知道应该在哪里给出这个表名模式。

env

  • 月食霓虹灯
  • hibernate工具5.1.1
  • mysql连接器6.0.4
  • jdk 1.8

配置文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory name="">
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.connection.password"/>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
 </session-factory>
</hibernate-configuration>

全堆栈跟踪

org.jboss.tools.hibernate.runtime.spi.HibernateException:无法从数据库中获取表的列表。可能是JDBC驱动程序问题。配置模式:空配置目录:空可用模式:可用目录: information_schema mysql performance_schema测试 在org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter$2.execute(LazyDatabaseSchemaWorkbenchAdapter.java:139) at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63) at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:108) at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.readDatabaseSchema(LazyDatabaseSchemaWorkbenchAdapter.java:125) at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.getChildren(LazyDatabaseSchemaWorkbenchAdapter.java:65) at org.hibernate。eclipse.console.workbench.BasicWorkbenchAdapter.fetchDeferredChildren(BasicWorkbenchAdapter.java:104) at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:231) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)引起的: java.sql.SQLException: Table name模式不能为空或空。在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:569) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:537) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:527) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:512) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:480)在com.mysql.cj.jdbc.DatabaseMetaData.getTables(DatabaseMetaData.java:3844) at org.hibernate.cfg.reveng.dialect.JDBCMetaDataDialect.getTables(JDBCMetaDataDialect.java:27) at org.hibernate.cfg.reveng.TableProcessor.processTables(TableProcessor.java:39) at org.hibernate.cfg.reveng.JDBCReader.readDatabaseSchema(JDBCReader.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.jboss.tools.hibernate.runtime.common.Util.invokeMethod(Util.java:43) at org.jboss.tools.hibernate.runtime.common.AbstractJDBCReaderFacade.readDatabaseSchema(AbstractJDBCReaderFacade.java:52) at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter$2.execute(LazyDatabaseSchemaWorkbenchAdapter.java:134)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 13:14:09

您还没有配置默认模式,因此hibernate不知道它应该在哪里获取表。你可以这样做:

<property name="hibernate.connection.url">jdbc:mysql://localhost/test?currentSchema=shema_name</property>

也看可能的答案here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40153357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档