2011-07-01 54 views
1

我在Eclipse中使用Hibernate Tools來逆向工程現有數據庫的域實體。由Hibernate工具生成的元模型類

雖然我仍然得到一批「Metamodel」類別與我的域類別一起生成,但我或多或少都可以生成我想要的所有內容。這些是具有相同名稱的類,但帶有後綴和下劃線「_」。

我讀過元模型概念here一些文檔,但我仍然不知道他們的目的...

是否安全,我簡單地刪除那些類?如果他們對我沒有用處,我寧願不讓他們亂包我的包探險家。

回答

2

元模型類由JPA 2.0中添加的「類型安全標準API」使用。這個API詳情請看這裏:

http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html_single/#querycriteria

休眠的EntityManager可以使用元模型類來驗證標準的有效期爲一組給定的實體。例如,如果你試圖編寫一個查詢來爲實體的屬性添加一個「where」子句,Hibernate可以驗證模型中實際存在的屬性,並且(我相信)會生成編譯時錯誤或警告。使用Hibernate的舊Criteria API,驗證這樣一個查詢的唯一方法就是執行它並查看是否拋出異常。

如果您不打算使用此Criteria API,那麼刪除這些類可能是安全的。

+0

謝謝克利夫,一個很好的總結。我現在要保留這些類,以防我稍後需要Criteria API。 – seanhodges