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

标签 java sql hibernate

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

<?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>

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

最佳答案

我遇到过类似情况,请检查是否:

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

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

    create table Table1{ column1, column2,etc.};

代替

    create table Table1{
     col1 ..,
     col2 ..,
    }

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

[更新]
感谢@vsapiha,支持多行 sql:

<property name="hibernate.hbm2ddl.import_files_sql_extractor">org.hibernate.tool.hbm2ddl.M‌​ultipleLinesSqlCommandExtractor</property>

关于Java EE jta hibernate.hbm2ddl.import_files 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221332/

相关文章:

java - 创建与 .accdb 访问文件的连接

sql - 创建具有与表中其他列相关的身份的表

sql - DB2 SQL 如何使用 GET DIAGNOSTICS 获取最后执行的 SQL 语句?

spring - 使用 Spring MVC 确认密码的最简单方法

java - Spring Boot 存储库双向加入

java - Tomcat6 中的类路径资源(适用于 Jetty)

java - 如何修复大学目录的服务器类中的此 "error: array required, but String found"错误?

java - 查询的执行时间

php - 连接到 MySQL/sqlbuddy PHP

hibernate - grails/hibernate : how to disable auto-increment on ID column?