Solución:
Para hibernate5 resolví este problema colocando las siguientes líneas en mi archivo 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
Por defecto, Spring usa org.springframework.boot.orm.jpa.SpringNamingStrategy
para generar nombres de tablas. Esta es una extensión muy delgada de org.hibernate.cfg.ImprovedNamingStrategy
. los tableName
método en esa clase se pasa una fuente String
valor, pero no sabe si proviene de un @Column.name
atributo o si se ha generado implícitamente a partir del nombre del campo.
los ImprovedNamingStrategy
convertirá CamelCase
para SNAKE_CASE
mientras que el EJB3NamingStrategy
simplemente usa el nombre de la tabla sin cambios.
Si no desea cambiar la estrategia de nomenclatura, siempre puede especificar el nombre de su columna en minúsculas:
@Column(name="testname")
Parece que
@Column (nombre = “..”)
se ignora por completo a menos que haya
spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.EJB3NamingStrategy
especificado, así que para mí esto es un error.
Pasé algunas horas tratando de averiguar por qué se ignoró @Column (name = “..”).