Home  >  Article  >  Java  >  Spring Boot JPA: Why is my Column Name Annotation Ignored?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 16:16:29717browse

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

Spring Boot JPA Column Name Annotation Ignored

This issue arises when the column annotation's specified name is disregarded in the generated SQL, resulting in the default convention being used (e.g., snake case).

Cause:

By default, Spring Boot utilizes the Hibernate dialect corresponding to the connected database, which may override the column annotation's name. In this case, the SQL Server dialect is being used, which creates columns using snake case naming.

Solution:

To resolve this issue and ensure the annotated column name is used, one can override the default naming strategy by explicitly setting the following properties in the application.properties file:

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

These settings specify that the implicit naming strategy should maintain table and column names as defined in the entity class, while the physical naming strategy should convert column names to the database's preferred format (e.g., snake case for MS SQL Server).

By configuring these properties, the annotated column name will be respected in the generated SQL, allowing for greater flexibility and control over column naming.

The above is the detailed content of Spring Boot JPA: Why is my Column Name Annotation Ignored?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn