mysql - Hibernate 5.0.12 错误的列定义与 Mysql 5.7 转义

标签 mysql spring hibernate jpa

我使用 Hibernate + Spring JPA 和 Mysql 5.7 作为 DBMS。我想使用一些保留关键字作为列名,为此我准备了:

spring.jpa.properties.hibernate.globally_quoted_identifiers=true

有些列有自定义定义,例如:

@CreatedDate
    @Column(updatable = false, columnDefinition = "DATETIME(6)")
    private LocalDateTime createdDate;

不幸的是,Hibernate 将其翻译为:

`created_date` `DATETIME(6)`

代替

`created_date` DATETIME(6)

我在 Hibernate JIRA 上开了一个问题 (JIRA) ;我想知道是否有可以同时使用的解决方法。

最佳答案

感谢 Hibernate 人员,我找到了正确的解决方案:

为了避免引用列定义,有一个特定的设置:

spring.jpa.properties.hibernate.globally_quoted_identifiers_skip_column_definitions=true

不幸的是,现在,它向后工作 (see this bug):所以如果您想跳过列定义,您必须将其设置为 false

关于mysql - Hibernate 5.0.12 错误的列定义与 Mysql 5.7 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44363937/

相关文章:

Mysql按组统计出现次数

java - 如何在启动时以编程方式将 spring bean 标记为@Primary?

java - 为什么我无法在 hibernate 中更改刷新模式

mysql - 为什么这个 mysql 事件无法运行?

mysql - Sql-如何在条件中使用关系字段

spring - 无法从链中的任何提供商加载 AWS 凭证 - 配置文件不能为空

java - spring-amqp 具有不同routingKey的多个队列

java - 我如何使用 hibernate 生成迁移?

mysql - 相当于 <generator class ="native"></generator> 使用 MySQL 和 Hibernate3 注释

php - SQL 时间戳 -> 1970