我定义了以下实体:
@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")
9条答案
按热度按时间pu3pd22g1#
Spring默认使用
org.springframework.boot.orm.jpa.SpringNamingStrategy
,org.springframework.boot.orm.jpa.SpringNamingStrategy
使用下划线分隔驼峰式名称。尝试在application.properties
中设置spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.EJB3NamingStrategy
。查看this和this以了解更多信息。xpcnnkqh2#
对于休眠版本5:
ctzwtxfj3#
对于***Sping Boot 2***(使用
2.2.6.RELEASE
检查),它应该是配置yml
文件:所以你可以有这样的模型:
并在启动时使用
data.sql
填充表:d6kp6zgx4#
在您的
appplication.properties.
中使用此功能xqnpmsa85#
用途
qgzx9mmu6#
在
application.properties
集合中jm81lzqq7#
有两种最常见的
org.hibernate.boot.model.naming.PhysicalNamingStrategy
:org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties
保持:所以默认情况下使用
CamelCaseToUnderscoresNamingStrategy
并且使用下划线...ibrsph3r8#
两者都是必需的:
bbmckpt79#
解决了。
无效的对象名称:使用JPA的Springboot(SQL服务器)
在应用程序. yaml/properties中指定
spring. jpa. hib.命名.隐式策略spring. jpa. hib.命名.物理策略
jpa:显示-SQL:假 hibernate :dldl-auto:none #未处于嵌入模式时默认为"none"命名:内隐策略:org. hib. boot. model. naming.隐式命名策略遗留Jpa实现物理策略:组织.休眠.引导.模型.命名.物理命名策略标准实施