[英]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.