无法在eclipse中使用hibernate将工程从db转换为java代码。
创建hibernate控制台配置后,我看到错误:无法从数据库获取表列表。可能是JDBC驱动程序问题。对于表名模式的堆栈跟踪,不能为空或空。
我不知道应该在哪里给出这个表名模式。
env
配置文件:
<?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)
发布于 2016-10-20 13:14:09
您还没有配置默认模式,因此hibernate不知道它应该在哪里获取表。你可以这样做:
<property name="hibernate.connection.url">jdbc:mysql://localhost/test?currentSchema=shema_name</property>
也看可能的答案here
https://stackoverflow.com/questions/40153357
复制相似问题