Le nom de classe de l'entité est transformé en nom de table SQL avec des underscores
j'ai l'entité suivante:
@Entity
@Table(name = "EmailTemplate")
public class EmailTemplate {
malgré l'annotation du tableau, je reçois java.sql.SQLException: Invalid object name 'email_template'
. Comment puis-je empêcher qu'une classe d'entity comme EmailTemplate soit transformée en email_template table name?
Edit:
j'utilise la botte de printemps: démarrer JPA. De mon build.gradle fichier,
compile("org.springframework.boot:spring-boot-starter-data-jpa")
5 réponses
Printemps utilise par défaut org.springframework.boot.orm.jpa.SpringNamingStrategy
qui divise chameau cas des noms avec des caractères de soulignement. Essayez de définir spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.EJB3NamingStrategy
dans application.properties
. Découvrez ce et ce pour plus d'info.
pour hibernate v5 :
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Utiliser
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy
résolu.
nom D'objet non valide: Springboot avec JPA (SQL server)
en application.yaml/propriétés de préciser les
"151900920 de" printemps".jpa.hiberner.nommer.implicite-stratégie printemps.jpa.hiberner.nommer.stratégie physiquejpa: show-sql: faux hiberner: ddl-auto: none # par défaut à "none" LORSQU'il N'est pas en mode intégré nommer: implicite-stratégie: org.hiberner.démarrage.modèle.nommer.ImplicitNamingStrategyLegacyJpaImpl physique-stratégie: org.hiberner.démarrage.modèle.nommer.La stratégie de la nomenclature physique et de la nomenclature 151910920"
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a];
nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
les deux sont obligatoires:
implicit-strategy
physical-strategy