Java EE jta hibernate.hbm2ddl.import_files不起作用

Ale*_* Po 1 java sql hibernate

我尝试在Web应用程序运行时导入sql文件.我import.sql进去了src/main/resources/import.sql.然后我persistence.xml通过添加import_files指令修改了我:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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.jsp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="spPU" transaction-type="JTA">
    <description>SP Persistence Unit</description>
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <jta-data-source>java:jboss/datasources/SpDS</jta-data-source>

    <properties>
      <property name="hibernate.hbm2ddl.auto" value="create"/>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="false"/>
      <property name="hibernate.hbm2ddl.import_files" value="import.sql"/>
    </properties>
  </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

但在重新部署或重启服务器后,没有任何内容可以上传到数据库中.我使用WildFly 8.1.0,Hibernate 4.3.5.Final,Database h2database 1.3.161.我试图从import.sql中删除空行并将hibernate.hbm2ddl.auto更改为create-drop.知道为什么import.sql没有加载到数据库中?

rgr*_*ski 5

我有类似的情况,请检查是否:

1)您可以手动运行您的sql脚本(导入期间发生错误时不显示SQL错误)

2)请确保所有sql语句都是单行的,例如:

    create table Table1{ column1, column2,etc.};
Run Code Online (Sandbox Code Playgroud)

代替

    create table Table1{
     col1 ..,
     col2 ..,
    }
Run Code Online (Sandbox Code Playgroud)

我在使用import时注意到这两个问题,希望这也解决了你的问题.

[更新]
Thx到@vsapiha支持多行sql:

<property name="hibernate.hbm2ddl.import_files_sql_extractor">org.hibernate.tool.hbm2ddl.M??ultipleLinesSqlCommandExtractor</property>
Run Code Online (Sandbox Code Playgroud)

  • 你可以添加这个配置键,以便使用**多行**sql脚本`<property name ="hibernate.hbm2ddl.import_files_sql_extractor"> org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor </ property> (3认同)