SpringBoot JPA 和 MySQL 8 区分大小写问题

问题描述 投票:0回答:1

我们有用 Spring Boot 编写的应用程序,并使用 jpa 访问现有数据库。我们需要将 Aurora (MySQL) 数据库升级到与 MySQL 8 兼容的最新版本。我们遇到的问题是它不允许将 lower_case_table_names 属性设置为 1,这允许不区分大小写搜索/查询。这会导致问题,因为许多实体定义具有 @Table(name = "TABLE_NAME") 或 @Column(name = "COLUMN_NAME") 注释,其中表或列的名称为大写,因此查询正在生成由于找不到表或列而出现错误。

SpringBoot jpa配置中有没有办法以小写形式提交查询?

只是想知道,否则我们将不得不在所有项目中找到表和列名称为大写的所有实例并更改它们。

提前致谢。

mysql spring-boot hibernate spring-data-jpa
1个回答
0
投票

您可以扩展

org.hibernate.boot.model.naming.PhysicalNamingStrategy
并对表名和列名执行小写转换。您可能还需要覆盖目录、模式、序列和类型名称的转换。然后,您需要将
hibernate.physical_naming_strategy
属性设置为您的自定义类。请参阅 thisthis 了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.