2016-04-25 20 views
1

在我們的項目中,我們使用Hibernate HQL和Orika廣泛。 這使得重構一種痛苦,因爲在編輯字段名稱或刪除字段時在映射突破字符串中所提及的所有領域。Java字段引用,以取代容易出錯的字符串

兩個可能的(部分)解決這一問題的更好的單元測試覆蓋率和更好的IDE配置,但我寧願解決這個問題,在它的核心,並使用直接字段引用,而不是字符串。

是否有更容易的映射,使用領域的引用,使任何框架(類似於例如龍目島)一重構結果在編譯時錯誤,而不是運行時錯誤?

更新:我發現了Hibernate元模型生成器,它可以創建JPA 2元模型:http://hibernate.org/orm/tooling/ 也許這樣的事情也存在非DB相關的參考?

回答

0

如果我正確地理解了你,你有很多類似於這樣的hibernate HQL查詢:"select fufu_field from myEntityImpl",你的問題是如果你將名字「fufu_filed」改爲「yoyo_filed」,你必須搜索所有的查詢字符串和手動更改值。這是一個問題。我不熟悉這將解決這個問題,你,但我會建議你在Static final String變量定義的所有字段名的任何框架。所以,你在上面的例子中,你將需要如下重新編寫查詢:

final public static String FUFU_FIELD_NAME = "fufu_filed"; 
private String myQuery = "select " + FUFU_FIELD_NAME + " from myEntityImpl"; 

現在,如果你需要改變你只需要在一個地方更改您的靜態字符串FUFU_FIELD_NAME變量thew值名稱,無論它使用多長時間。你可以再進一步,在屬性文件定義你的名字和你的一次服務器出現它可以讀取屬性文件中的值,並初始化靜態變量。這樣你甚至不需要重新編譯你的項目 - 只需要改變你的屬性文件並重啓服務器即可。

+0

謝謝邁克爾的這個提示。在重複字段名稱的情況下,我們經常會對最終的字符串做這樣的事情。 – Cloud

相關問題