有没有办法让Play框架和JPA在列名中使用下划线?

Aar*_*ron 8 java hibernate jpa playframework

我正在努力建立一个游戏!应用程序针对现有数据库运行,其中所有列都具有下划线以分隔单词.这意味着我必须@Column在每个字段上添加注释以指定不同的名称.反正有没有玩!默认情况下使用下划线?

Sea*_*oyd 14

如果Play使用Hibernate,正如其他答案所示,您将必须实现自定义NamingStrategy.

下面是一个示例NamingStrategy,使用Guava将所有列名称从较低的camel转换为带有下划线的小写:

public class CustomNamingStrategy extends ImprovedNamingStrategy {

    private static final long serialVersionUID = -306957679456120781L;

    @Override
    public String columnName(final String columnName) {
        return CaseFormat.LOWER_CAMEL
                         .to(CaseFormat.LOWER_UNDERSCORE, columnName);
    }
}
Run Code Online (Sandbox Code Playgroud)

像这样配置:

将以下行添加到application.conf以配置NamingStrategy

hibernate.ejb.naming_strategy=<your naming strategy classname>

参考: