【发布时间】:2015-09-22 07:20:06
【问题描述】:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="safety" transaction-type="JTA">
<jta-data-source>java:/jdbc/MyDataSource</jta-data-source>
<properties>
<property name="javax.persistence.schema-generation.scripts.action" value="create"/>
<property name="javax.persistence.schema-generation.scripts.create-target" value="create.ddl"/>
<property name="hibernate.default_schema" value="safety"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="false"/>
<property name="hibernate.use_sql_comments" value="true"/>
</properties>
</persistence-unit>
</persistence>
这是我的 persistence.xml。如何通过 Persistence.generateSchema() 生成数据库模式?
public class SchemaGenerator {
public static void main(String args[]) {
Map<String, Object> properties = new HashMap<String, Object>();
//adding some properties
Persistence.generateSchema("safety", properties);
}
}
它给了我这个错误:org.hibernate.engine.jndi.JndiException: Error parsing JNDI name [java:/jdbc/MyDataSource]。
但是,它不必连接我的数据库,因为我只需要生成 ddl。
【问题讨论】:
-
我查看了下面的链接。但在我的情况下它不起作用。 github.com/hantsy/ee7-sandbox/wiki/jpa-scripts
-
您可以注释掉 persistence.xml 中的 jta-data-source 以进行临时修复。