Saltar al contenido

Spring boot JPA insertar en TABLE con nombre en mayúsculas con Hibernate

No dejes de divulgar nuestro sitio y códigos en tus redes, apóyanos para ampliar esta comunidad.

Solución:

En hibernate 5, sería

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

en tus aplicación.propiedades expediente.

La solución es agregar:

spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy

para application.properties

Como sugirió @jasonleakey, podemos considerar usar la estrategia de nombres como se muestra a continuación.

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

esto le dice a Hibernate que genere SQL exactamente como se especifica en @Table (name=” “) o @Column(name=” “). Todo bien.

Pero tenga en cuenta que al usar PhysicalNamingStrategy sin @Table, @Column anotaciones en la clase de entidad, hibernate genera SQL usando el nombre de la clase y los nombres de las variables. Considere la siguiente clase de Java

Class Employee 
   private String firstName;
   private String lastName; 

entonces el sql generado sería,

select employee0_.firstName,employee0_lastName from Employee employee0_;

Desafortunadamente, esta no es una gran opción, ya que normalmente habríamos definido las columnas en la base de datos como FIRST_NAME y LAST_NAME y el nombre de la tabla como EMPLOYEE. Si no hubiera usado PhysicalNamingStrategy, el SQL habría sido

select employee0_.first_name,employee0_last_name from employee employee0_;

por lo que es realmente una elección entre las siguientes dos opciones.

  • Use PhysicalStrategy y defina explícitamente todos los nombres de tablas/columnas en código java con anotaciones @Table y @Column.

    o
  • Defina el nombre de la tabla en minúsculas en db y deje que hibernate genere automáticamente nombres de tablas/columnas para nosotros.

Acuérdate de que tienes autorización de agregar una reseña si te fue útil.

¡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 *