Hibernate 弹簧靴1.5+;冬眠5罐';t自动将列大小写转换为下划线

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 {

基于spring boot 1.5和hibernate 5, 我创建了许多实体并配置了hibernate.hbm2ddl.auto=update。我想从
实体
自动生成
。 但有一个问题我无法解决<代码>休眠无法自动将列从大小写转换为下划线

我读到:

但以上这些都不能解决我的问题。 请告诉我如何配置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);