Maison >Java >javaDidacticiel >Spring Boot JPA : pourquoi l'annotation de mon nom de colonne est-elle ignorée ?

Spring Boot JPA : pourquoi l'annotation de mon nom de colonne est-elle ignorée ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 16:16:29817parcourir

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

Annotation du nom de colonne JPA Spring Boot ignorée

Ce problème survient lorsque le nom spécifié de l'annotation de colonne est ignoré dans le SQL généré, ce qui entraîne le convention par défaut utilisée (par exemple, le cas du serpent).

Cause :

Par défaut, Spring Boot utilise le dialecte Hibernate correspondant à la base de données connectée, qui peut remplacer le nom de l'annotation de colonne. Dans ce cas, le dialecte SQL Server est utilisé, ce qui crée des colonnes en utilisant la dénomination en casse serpent.

Solution :

Pour résoudre ce problème et garantir le nom de colonne annoté est utilisé, on peut remplacer la stratégie de dénomination par défaut en définissant explicitement les propriétés suivantes dans le fichier 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

Ces paramètres spécifient que la stratégie de dénomination implicite doit conserver les noms de table et de colonne tels que définis dans le classe d'entité, tandis que la stratégie de dénomination physique doit convertir les noms de colonnes au format préféré de la base de données (par exemple, le cas du serpent pour MS SQL Server).

En configurant ces propriétés, le nom de colonne annoté sera respecté dans le SQL généré , permettant une plus grande flexibilité et un plus grand contrôle sur la dénomination des colonnes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn