J'ai une application Spring Boot avec dépendance spring-boot-starter-data-jpa
. Ma classe d'entité a une annotation de colonne avec un nom de colonne. Par exemple:
@Column(name="TestName")
private String testName;
SQL généré par cela créé test_name
comme nom de colonne. Après avoir cherché une solution, j'ai trouvé qui a spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
résolu le problème (le nom de la colonne provient de l'annotation de la colonne).
Pourtant, ma question est de savoir pourquoi sans naming_strategy défini sur EJB3NamingStrategy
JPA ignore l'annotation de colonne? Peut-être que le dialecte d'hibernation a quelque chose à voir avec ça? Je me connecte à MS SQL 2014 Express et mes journaux contiennent:
Unknown Microsoft SQL Server major version [12] using SQL Server 2000 dialect
Using dialect: org.hibernate.dialect.SQLServerDialect
@Column(name="...")
annotations, par exemple lorsque vous utilisez un type d'accès autre que prévu, mais ce n'est pas le cas ici.