spring-boot - requestparam - requestmapping spring ejemplo
El nombre de la clase de entidad se transforma en el nombre de la tabla SQL con guiones bajos (5)
Tengo la siguiente entidad definida:
@Entity
@Table(name = "EmailTemplate")
public class EmailTemplate {
A pesar de la anotación de tabla, recibo java.sql.SQLException: Invalid object name ''email_template''
. ¿Cómo puedo evitar que una clase de entidad como EmailTemplate se transforme en el nombre de la tabla email_template?
Editar:
Estoy usando Spring Boot: inicia JPA. Desde mi archivo build.gradle,
compile("org.springframework.boot:spring-boot-starter-data-jpa")
Para hibernate v5 :
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Resuelto
Nombre de objeto inválido: Springboot con JPA (servidor SQL)
En application.yaml / properties especifica el
spring.jpa.hibernate.naming.implicit-strategy spring.jpa.hibernate.naming.physical-strategy
jpa: show-sql: false hibernate: ddl-auto: none # Predeterminado a "none" cuando NO está en modo incrustado naming: implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl physical-strategy: org.hibernate. boot.model.naming.PhysicalNamingStrategyStandardImpl
Spring utiliza de forma predeterminada org.springframework.boot.orm.jpa.SpringNamingStrategy
que divide los nombres de las cajas de camello con guiones bajos. Intenta configurar spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.EJB3NamingStrategy
en application.properties
. Mira this y this para más información.
Utilizar
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a];
nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
Ambos son obligatorios:
implicit-strategy
physical-strategy