Hibernate 弹簧靴1.5+;冬眠5罐';t自动将列大小写转换为下划线
基于spring boot 1.5和hibernate 5, 我创建了许多实体并配置了hibernate.hbm2ddl.auto=update。我想从Hibernate 弹簧靴1.5+;冬眠5罐';t自动将列大小写转换为下划线,hibernate,spring-boot,Hibernate,Spring Boot,基于spring boot 1.5和hibernate 5, 我创建了许多实体并配置了hibernate.hbm2ddl.auto=update。我想从实体自动生成表。 但有一个问题我无法解决休眠无法自动将列从大小写转换为下划线 我读到: 但以上这些都不能解决我的问题。 请告诉我如何配置hibernate或spring引导 这是我的BaseEntity类 @MappedSuperclass public class BaseEntity implements Serializable {
实体
自动生成表
。
但有一个问题我无法解决<代码>休眠无法自动将列从大小写转换为下划线
我读到:
但以上这些都不能解决我的问题。
请告诉我如何配置hibernate或spring引导
这是我的BaseEntity类
@MappedSuperclass
public class BaseEntity implements Serializable {
@Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid")
private String id;
@Column(nullable = false, updatable = false)
private Date createDate;
@Column(nullable = false)
private Date modifyDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
@Override
public String toString() {
return "BaseEntity{" +
"id='" + id + '\'' +
", createDate=" + createDate +
", modifyDate=" + modifyDate +
'}';
}
}
这是我的AdminUser类
@Entity
@Table(name = "ifox_admin_user")
public class AdminUserEO extends BaseEntity {
public enum AdminUserEOStatus {
ACTIVE,
INVALID
}
@Column(nullable = false, length = 30, unique = true)
private String loginName;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private AdminUserEOStatus status;
@Column(nullable = false)
private Boolean buildinSystem = false;
private String nickName;
private String email;
@Column(length = 20)
private String mobile;
private String remark;
@ManyToMany
@JoinTable(name = "ifox_admin_user_role", joinColumns = {@JoinColumn(name = "admin_user")}, inverseJoinColumns = {@JoinColumn(name = "role")})
private List<RoleEO> roleEOList = new ArrayList<>();
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public AdminUserEOStatus getStatus() {
return status;
}
public void setStatus(AdminUserEOStatus status) {
this.status = status;
}
public Boolean getBuildinSystem() {
return buildinSystem;
}
public void setBuildinSystem(Boolean buildinSystem) {
this.buildinSystem = buildinSystem;
}
public List<RoleEO> getRoleEOList() {
return roleEOList;
}
public void setRoleEOList(List<RoleEO> roleEOList) {
this.roleEOList = roleEOList;
}
@Override
public String toString() {
return "AdminUserEO{" +
"loginName='" + loginName + '\'' +
", password='" + password + '\'' +
", status=" + status +
", buildinSystem=" + buildinSystem +
", nickName='" + nickName + '\'' +
", email='" + email + '\'' +
", mobile='" + mobile + '\'' +
", remark='" + remark + '\'' +
'}';
}
}
我也面临着同样的问题。。。 看起来
org.hibernate.dialogue.mysql5dialogue
正在覆盖命名策略
将其替换为org.hibernate.dialent.mysqlinnodbdialent
为我解决了这个问题
您还可以测试以编程方式设置命名策略,以便覆盖MySql5的命名策略:
configuration.setNamingStrategy(ImprovedNamingStrategy.INSTANCE);
您能否显示一个示例实体和您的配置。我已经完善了问题的细节。谢谢你的帮助。
configuration.setNamingStrategy(ImprovedNamingStrategy.INSTANCE);