首页 > 解决方案 > 如何让 Spring 将骆驼箱转换为蛇箱?

问题描述

在我的 Spring Boot 2.5.0 应用程序中,Spring 不会将我的驼峰式实体/属性名称转换为蛇形表/列。

我没有设置任何spring.jpa.hibernate.naming.*属性。

这些属性的默认值是什么?

我应该为此设置什么?

class MyEntity {                // I want it to be map from 'my_entity' table

    private String myAttribute; // I want it to be map from 'my_attribute' column
}

谢谢。

标签: spring-boothibernatejpaspring-data-jpa

解决方案


如果你想一致地应用这些约定,你也可以使用 Hibernate 的命名策略......

class SnakeCaseNamingConvention implements PhysicalNamingStrategy {
    @Override
    public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment jdbcEnvironment) {
        // apply snake-case conversion
        ...
    }

    public Identifier toPhysicalColumnName(Identifier name, JdbcEnvironment jdbcEnvironment) {
        // apply snake-case conversion
        ...
    }

    ... 
}

推荐阅读