Mam aplikację Spring Boot z zależnościami spring-boot-starter-data-jpa
. Moja klasa encji ma adnotację kolumny z nazwą kolumny. Na przykład:
@Column(name="TestName")
private String testName;
Kod SQL wygenerowany przez to utworzony test_name
jako nazwa kolumny. Po szukaniu rozwiązania stwierdziłem, że spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
problem rozwiązał (nazwa kolumny jest pobierana z adnotacji kolumny).
Mimo to moje pytanie brzmi: dlaczego bez ustawienia naming_strategy na EJB3NamingStrategy
JPA ignoruje adnotację kolumny? Może dialekt hibernacji ma z tym coś wspólnego? Łączę się z MS SQL 2014 Express i moje logi zawierają:
Unknown Microsoft SQL Server major version [12] using SQL Server 2000 dialect
Using dialect: org.hibernate.dialect.SQLServerDialect
@Column(name="...")
adnotacje, na przykład gdy używasz innego niż oczekiwany typu dostępu, ale tak nie jest w tym przypadku.