Saltar al contenido

Spring Boot + JPA: se ignora la anotación del nombre de la columna

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 = “..”).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *