繁体   English   中英

Hibernate JPA 不在类路径上执行 import.sql

[英]Hibernate JPA not executing import.sql on classpath

我有一个 Hibernate JPA 项目,它在类路径上有一个import.sql文件。 我已经尝试了很多方法来让它工作。 我的persistence.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="SNAPSHOTPU"
        transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:jboss/datasources/PostgresqlDS</jta-data-source>
        <class>net.example.Actor</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
            <property name="hibernate.show_sql" value="true" />
            <property name="javax.persistence.schema-generation.database.action"
                value="drop-and-create" />
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />
            <property name="hibernate.hbm2ddl.import_files" value="import.sql" />
        </properties>
    </persistence-unit>
</persistence>

我也尝试过没有hibernate.hbm2ddl.*东西,因为这是 JPA,但似乎都不起作用。 我的 import.sql 在src/main/resources ,这是一个 Maven 项目。

我在文件中有一个有效的 SQL 语句:

insert into actors values (1, 'Test Import.sql');

正如我看到有人建议的那样,我什至在文件的开头尝试了一个空行。 我为 Hibernate 打开了调试,可以看到它在日志中运行 DDL 命令来创建表,但我没有看到任何关于import.sql或文件中的 insert 语句的信息。

为什么这不起作用?

编辑

@Baldurian 就在下面,这是有效的(在persistence.xml 中):

<properties>
    <property name="hibernate.show_sql" value="true" />
    <property name="javax.persistence.schema-generation.database.action"
        value="drop-and-create" />
    <property name="javax.persistence.sql-load-script-source"
        value="/import.sql" />
</properties>

尝试(相应地更改 javax.persistence.sql-load-script-source 路径):

<properties>
    <property name="hibernate.show_sql" value="true" />
    <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
    <property name="javax.persistence.schema-generation.create-source" value="metadata-then-script"/>
    <property name="javax.persistence.sql-load-script-source" value="/import.sql"/>
</properties>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM