Home >Java >javaTutorial >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!