2016-04-01 5 views
2

クラスパスに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> 
+0

非常に重要な注意import.sqlはsrc/main/resourcesにあります – Francis

答えて

1

てみてください(変更javax.persistence.sql負荷-script-ソースパス):

<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> 
関連する問題