我正在使用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.
标签:jpa,hibernate,spring,mysql
来源: https://codeday.me/bug/20191111/2018911.html