次のエンティティを定義しています:
@Entity
@Table(name = "EmailTemplate")
public class EmailTemplate {
テーブル注釈にもかかわらず、Java.sql.SQLException: Invalid object name 'email_template'
。 EmailTemplateなどのエンティティクラスがemail_templateテーブル名に変換されるのを防ぐにはどうすればよいですか?
編集:
Spring Bootを使用しています:JPAを起動します。私のbuild.gradleファイルから、
compile("org.springframework.boot:spring-boot-starter-data-jpa")
hibernate v5の場合:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
つかいます
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
両方が必要です:
implicit-strategy
physical-strategy
解決しました。
無効なオブジェクト名:JPAを使用したSpringboot(SQLサーバー)
Application.yaml/propertiesで指定します
spring.jpa.hibernate.naming.implicit-strategy spring.jpa.hibernate.naming.physical-strategy
jpa:show-sql:false hibernate:ddl-auto:none#組み込みモードでない場合のデフォルトは「none」命名:implicit-strategy:org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl physical-strategy:org.hibernate。 boot.model.naming.PhysicalNamingStrategyStandardImpl