首页 新闻 会员 周边 捐助

JPA表操作

0
[已解决问题] 解决于 2021-09-23 17:03

设置spring.jpa.properties.hibernate.hbm2ddl.auto=update
实体类为
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private int id;

@Column(name = "PhoneNumber")
private String phoneNumber;

@Column(name = "PetName")
private String petName;

public void setId(int id){
    this.id = id;
}

public int getId(){
    return this.id;
}

public void setPhoneNumber(String phoneNumber){
    this.phoneNumber = phoneNumber;
}

public String getPhoneNumber(){
    return this.phoneNumber;
}

public void setPetName(String petName){
    this.petName = petName;
}

public String getPetName(){
    return this.petName;
}

}
即使已经事先创建了表user,字段为Id(主键,自增长),PhoneNumber,PerName。
程序运行后,JPA会自动增加字段phone_number和per_name,我已经在实体类中将字段映射配置好了,为什么会自动创建新的字段,而不是匹配已经存在的字段。
如果将spring.jpa.properties.hibernate.hbm2ddl.auto值修改为validate,表结构仍然为字段为Id(主键,自增长),PhoneNumber,PerName,则报错,提示找不到相应的字段。个人认为,注解@Column(name = "PetName")映射字段过程中,会将PetName修改为pet_name,pet_name为最终字段名。可这样做不是显得很奇葩吗?

up-bear的主页 up-bear | 初学一级 | 园豆:134
提问于:2021-08-19 10:34
< >
分享
最佳答案
0

JPA @Column 字段命名 默认驼峰转换。
你非要那么搞,就去配置文件里修改hibernate 默认命名策略。

奖励园豆:5
冰霜之卅 | 菜鸟二级 |园豆:209 | 2021-08-19 11:44

原来如此,感谢感谢。

up-bear | 园豆:134 (初学一级) | 2021-08-19 13:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册