クラスパスにimport.sql
というファイルを持つHibernate JPAプロジェクトがあります。私はそれを働かせるためにいくつかのことを試みました。私のpersistence.xmlがある:Hibernate JPAはクラスパス上でimport.sqlを実行しません
<?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>
これはJPAであるので、私はまたhibernate.hbm2ddl.*
ものなしでそれを試してみましたが、どちらも動作するようです。私のimport.sqlはsrc/main/resources
であり、これはMavenプロジェクトです。
私は、ファイル内の1つの有効なSQL文を持っている:
insert into actors values (1, 'Test Import.sql');
私は誰かが示唆見たように、私も、ファイルの先頭に空白行を試してみました。私は、デバッグをHibernateのために有効にして、ログをDDLコマンドを実行してテーブルを作成するのを見ることができますが、import.sql
またはファイルのinsert文について何も表示されません。
なぜこれが機能しないのですか?
EDIT
@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>
非常に重要な注意import.sqlはsrc/main/resourcesにあります – Francis