我正在嘗試構建Play!應用程序針對現有數據庫運行,其中所有列都有下劃線來分隔單詞。這意味着我必須在每個字段上添加一個@Column
註釋以指定不同的名稱。無論如何玩Play!默認使用下劃線?有什麼方法讓Play框架和JPA在列名中使用下劃線?
8
A
回答
14
如果Play使用Hibernate,如其他答案建議,則必須使用implement a custom NamingStrategy
。
下面是一個示例NamingStrategy所有列名轉換從低駱駝爲小寫用下劃線,使用Guava:
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);
}
}
,將其配置是這樣的:
以下行添加到 應用.conf來配置 NamingStrategy
hibernate.ejb.naming_strategy=<your naming strategy classname>
參考:
0
那麼,如果我正確地閱讀了文檔,則播放框架將使用Hibernate作爲JPA實現。 AFAIK,沒有辦法改變Hibernate的標準命名,所以你必須添加註釋或者在映射XML文件中提供列名。
+0
聽起來像@SeanPatrickFloyd答案正在工作(根據OP和我在SO中看到的其他問題)。你介意編輯/刪除你的答案嗎?比獲得低價並且更清楚其他讀者更好! – Stefano 2012-09-14 09:05:41
1
給出的解決方案的偉大工程,但由於ST在評論中,ImprovedNamingStrategy這樣做,所以沒有必要使用番石榴。
一種改進的命名策略,喜嵌入式下劃線混合 情況名
你可以簡單地在你的application.conf
(在遊戲測試!框架1.2.5)
相關問題
- 1. Play框架和JPA
- 2. 「讓_ = ...」(讓下劃線相等)在Swift中有什麼用處?
- 3. 在變量名稱和方法名稱中使用下劃線
- 4. 如何讓Resharper允許在方法名中使用下劃線,但只能在測試中使用下劃線?
- 5. 玩法框架中的下劃線
- 6. Play中的JPA列順序!框架
- 7. 「雙下劃線」和「下劃線x」有什麼區別?
- 8. 在Play框架中堅持JPA實體的最佳方法
- 9. 爲什麼在TextView中有下劃線?
- 10. Play框架 - 使用JPA的分頁
- 11. 爲什麼在HTTP頭名中禁止使用下劃線
- 12. 爲什麼api方法名稱不能包含下劃線?
- 13. 在主機名中使用下劃線
- 14. Swift下劃線方法和函數做什麼?
- 15. 下劃線bindAll,顯式方法命名
- 16. Play框架中的Silhouette和Deadbolt 2有什麼區別
- 17. Play框架。路線。錯誤:「沒有足夠的方法參數...」
- 18. 使用下劃線的_.debounce()方法
- 19. JPA和線程在玩框架
- 20. 在文件名中帶有下劃線
- 21. 爲什麼在PHP中雙下劃線(__)?
- 22. JavaScript中屬性和方法名的下劃線前綴
- 23. 下劃線:裹陣列收集方法
- 24. 使用Play框架
- 25. Java中的方法名稱之前的下劃線的含義是什麼?
- 26. Buildr中下劃線方法的用途
- 27. 爲什麼是下劃線
- 28. Zend框架PDF下劃線字體
- 29. 如何配置Resharper,使其「允許」在方法名稱中具有下劃線?
- 30. 應該在列名中使用下劃線嗎?
應該插入下劃線添加
hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
基於什麼? – Thomas 2011-04-26 21:33:52單詞之間用下劃線分隔,而不是駱駝式的情況 – Aaron 2011-04-26 21:46:21