【问题标题】:Missing semicolons at line-end of JPA-generated sql scriptJPA 生成的 sql 脚本的行尾缺少分号
【发布时间】:2018-07-03 13:54:23
【问题描述】:

我正在使用 JPA 生成一个脚本,用于根据我的实体创建数据库表:

javax.persistence.schema-generation.scripts.action=create
javax.persistence.schema-generation.scripts.create-target=db_setup.sql

文件是用正确的表生成的,但是语句不以分号结尾,例如:

create table hibernate_sequence (next_val bigint)
insert into hibernate_sequence values ( 1 )
insert into hibernate_sequence values ( 1 )

我认为这在标准 SQL 中有效?但是,它在 MySQL 中无效。有没有办法告诉 JPA 将分号添加到行尾?或者还有什么可能是它丢失的原因?

【问题讨论】:

  • 需要加分号,不要假设
  • 更好的是,在您的 JPA 提供程序上提出一个错误,以生成无法直接执行的内容
  • 我无法想象 hibernate 在创建 sql 语句时不添加分号,这就是我问的原因。但看来你是对的,这已经在这里跟踪了:hibernate.atlassian.net/browse/HHH-10278

标签: java mysql sql jpa


【解决方案1】:

从 Hibernate 5.1.0 开始,生成的 SQL 的行分隔符可以通过设置hibernate.hbm2ddl.delimiter 属性来定义,例如

hibernate.hbm2ddl.delimiter=";"

默认为无分隔符。

另请参阅this ticket 上的 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多