首页  >  文章  >  Java  >  Spring Boot JPA:为什么我的列名注释被忽略?

Spring Boot JPA:为什么我的列名注释被忽略?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-27 16:16:29717浏览

  Spring Boot   JPA: Why is my Column Name Annotation Ignored?

Spring Boot JPA 列名称注释被忽略

当生成的 SQL 中忽略列注释的指定名称时,会出现此问题,导致使用默认约定(例如,蛇形大小写)。

原因:

默认情况下,Spring Boot 使用与连接的数据库对应的 Hibernate 方言,这可能会覆盖列注释的名称。在本例中,使用的是 SQL Server 方言,该方言使用蛇形命名法创建列。

解决方案:

要解决此问题并确保注释的列名称使用时,可以通过在 application.properties 文件中显式设置以下属性来覆盖默认命名策略:

spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

这些设置指定隐式命名策略应维护表和列名称,如实体类,而物理命名策略应将列名转换为数据库的首选格式(例如,MS SQL Server 的蛇形命名法)。

通过配置这些属性,在生成的 SQL 中将尊重带注释的列名,允许更大的灵活性和对列命名的控制。

以上是Spring Boot JPA:为什么我的列名注释被忽略?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn