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中文网其他相关文章!