spring-boot - hibernate : How to change the auto generated foreign key column name from lowercase to uppercase

标签 spring-boot hibernate jpa h2

我正在将旧的 spring boot 应用程序迁移到最新的 spring boot 2.3.0

迁移成功,但是,当我尝试将应用程序连接到现有数据库时,由于大小写问题,它无法识别自动生成的外键列。

旧版本中的外键列名称具有大写字母,如下所示。这里FLAGCATEGORY_FLAGCATEGORYID是hibernate自动生成的外键列名

enter image description here

当我将新的 spring boot 版本与 hibernate 5 一起使用时,它会生成小写的外键列名称。由于这种差异,应用程序无法使用旧数据库启动。有人可以建议我在不更改数据库架构的情况下应该如何解决这个问题? enter image description here

这是新的外键表名的样子。外键列名现在有小写字母 enter image description here

最佳答案

您可以使用自己的列名而不是自动生成的列名,尝试在您的 flagCategory getter 上添加此注释:

@JoinColumn(name = "FLAGCATEGORY_FLAGCATEGORYID")

关于spring-boot - hibernate : How to change the auto generated foreign key column name from lowercase to uppercase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62588312/

相关文章:

java - 为什么我的 Spring Boot Controller 不自动连接 validator ?

java.lang.NoSuchMethodError : javax. 持久性.PersistenceContext.同步

java.lang.AssertionError : org. hibernate.exception.SQLGrammarException:无法插入:

java - join fetch 在 Hibernate 查询语言中不起作用

java - Spring boot postgresql 在安装配置上失败

spring-boot -/dev/stdout 权限被拒绝 Tomcat 访问日志

java - Spring Boot elasticsearch 健康管理 : ConnectException: Connection refused

java - "one shot"程序可以用spring boot吗

java - JPA/Hibernate - 如何急切地获取 EmbeddedId?

java - 带有类名的 JPA/Hibernate 查询?