2

我使用Hibernate,Maven和Eclipse(STS構建)來構建項目。我正在使用hbm.xml文件來指定我的模式。我想用Hibernate的hbm2java來生成我的模型類。我已經運行良好並生成了我想要的代碼。什麼是使用Hibernate的hbm2java的最佳實踐?

它從命令行完美運行,生成模型代碼,然後按預期構建和測試。

但是,Eclipse似乎無法處理它。它會定期「失去理智」,無法解決我手動編碼的DAO類中引用的非常簡單的導入和類。它無法找到的東西是像HibernateUtil這樣的類。具有諷刺意味的是,它似乎沒有任何困難找到模型類。

未解決的類位於運行結束時的target/classes/blah-blah文件夾中。所以他們顯然被複制到正確的地方。

在「持續集成」環境中,是否最好生成一次源代碼,將它們提交給我的版本控制,然後禁用代碼gen?或者是否有可能每次都生成代碼,從而確保我能夠在沒有人爲干預的情況下獲取任何數據庫更改?

回答

5

恕我直言,實體應該是您的應用程序的核心,並應小心設計,實施和記錄。它們應該是對象,方法封裝行爲。讓他們自動生成是一個荒謬的事,國際海事組織。

在開始生成它們可能是一個讓你開始的選項,但是一旦生成它們,就可以手工製作它們並不再生成它們。在模式更改時添加必要的屬性和方法,並重構現有代碼。

順便說一句,我真的更喜歡使用註釋的映射,因爲它不那麼冗長,不易出錯,所有的信息都在一個地方。

+0

謝謝。但我希望「真相之源」是我的數據庫模式。通過手動編寫模式類和模型類,我現在有多個知識存在的地方。您是否看到將數據庫模式(或本例中爲hbm.xml文件)定義爲模型的唯一位置? (我想你可以在一個地方定義它:你的Java模型類) – Marvo 2011-12-31 00:25:30

+2

我們使用了註釋,但發現它們完全相反:看起來很醜,遍佈代碼。使用hbm文件,感覺像數據庫定義全部在一個地方。但我還沒有解決這個問題。 (儘管我有問題,但我真的很感謝你的回答。) – Marvo 2011-12-31 00:27:02

+0

數據庫模式位於數據庫或用於創建模式的SQL腳本中,也位於hbm文件中,所以我不會看到它如何更改任何有關從hbm或手動生成的類的方法。如果您擔心hbm和java文件未同步,請使用註釋。無論如何你都應該進行單元測試來測試一切正常。 – 2011-12-31 00:30:33

0

試試這個:

從命令行運行到您的項目目錄,該項目的pom.xml存在並運行:

mvn eclipse:clean eclipse:eclipse 

如果說無法找到插件日食然後嘗試:

mvn eclipse:install-plugin 

首先再次嘗試上面的命令。

通過這種方式,所有maven和項目依賴關係也將在eclipse級別解決。

讓我知道如果這不是你要找的。

相關問題