簡體   English   中英

有沒有辦法讓Play框架和JPA在列名中使用下划線?

[英]Is there any way to get Play framework and JPA to use underscores in column names?

我正在努力建立一個游戲! 應用程序針對現有數據庫運行,其中所有列都具有下划線以分隔單詞。 這意味着我必須在每個字段上放置@Column注釋以指定不同的名稱。 反正有沒有玩! 默認情況下使用下划線?

如果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);
    }
}

像這樣配置:

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

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

參考:

給出的解決方案效果很好,但正如評論中所述, ImprovedNamingStrategy可以做到這一點,因此不需要使用Guava。

改進的命名策略,優先使用嵌入式下划線和混合案例名稱

您只需在application.conf添加hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy (在Play!Framework 1.2.5中測試)

好吧,如果我正確地閱讀了doc,那么play框架就是使用Hibernate作為JPA實現。 AFAIK,無法更改Hibernate的標准命名,因此您必須在映射XML文件中添加注釋或提供列名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM