【从零开始学习Spirng Boot—常见异常汇总】
在
这一章节中有人碰到这样一个问题“导入的数据和我自己生成的表不对应自己生成的表名有下滑杠连接符”。
这个问题主要是JPA的命名策略不一致导致的。
我们有这么一个配置:
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.DefaultNamingStrategy
这里的值有两个可选的配置:
第一:org.hibernate.cfg.ImprovedNamingStrategy
第二:org.hibernate.cfg.DefaultNamingStrategy
以上两个的区别是:
DefaultNamingStrategy这个直接映射,不会做过多的处理(前提没有设置@Table,@Column等属性的时候)。
ImprovedNamingStrategy 表名,字段为小写,当有大写字母的时候会转换为分隔符号“_”。
举个栗子,我们设计了如下实体类:
@Entity
publicclass DemoInfo {
@Id@GeneratedValue
privatelongid;
private String name;
private String password;
private String workLocation;
}
那么当命名策略配置为DefaultNamingStrategy的时候,对应自动生成的表是:
表名:DemoInfo
表字段:
id bigint
name varchar
password varchar
workLocation varchar
当命名策略为ImprovedNamingStrategy 的时候,对应自动生成的表是:
表名:demo_info
表字段:
id bigint
name varchar
password varchar
work_location varchar
当设置了如下设置之后,
@Column(name="work_location")
private String workLocation;
那么就以设置的@Column为主。
【Spring Boot 系列博客】
更多查看博客: