2011-07-04 24 views
0

我用我的servlet休眠訪問database.DB含有大量的外鍵,組合鍵和後退參考..這是最好的工具生成Hibernate映射從MySQL數據庫

您能否提供我一些工具在Java中將MySQL數據庫逆向工程化爲面向對象的文件,以便我可以在休眠狀態下使用它。

+0

請標記答案,.. –

回答

1

看看JBoss Hibernate Tools它允許您對現有數據庫進行逆向工程。

+0

我已經嘗試過使用它..但是當它出現在組合鍵的情況下,它給了我錯誤的映射。 – Eby

+1

Hibernate Tools爲您提供了實現自己的逆向工程策略的選項(請參閱第6.3章。自定義策略)。鑑於數據庫佈局足夠複雜,幾乎所有通用的逆向工程解決方案都會遇到其侷限性。也許你在這裏開箱即可。 – Torsten

+0

是的..如果工具不能工作,我會手動編寫它..學習治療在這個框架上有點高。 – Eby

2

IDE通常提供這樣的實體生成。 例如,如果您使用Netbeans,只需從Java SE/Java EE項目中的數據庫中的File/New/Persistence/Entity Classes生成JPA實體。 順便說一下,儘可能使用標準的JPA(2)機制是一個好主意,以便不依賴於特定的O/R映射器(如Hibernate)或數據庫。

1

我們使用Hibernate的工具生成具有hibernate.reveng.xml文件的幫助*.hbm.xml文件。然後,我們應用Hibernate Synchronizer Eclipse的插件以使用*.hbm.xml文件生成實體和DAO。

hibernate.reveng.xml填寫自動生成無法猜測您腦海中有什麼的部分。

Hibernate Synchronizer的主要優點是爲您生成的實體/道數創建基類。您將自定義屬性/方法添加到基類的子類(再次自動生成)。這樣做的好處是,如果您對數據庫進行更改並重新生成,則您所做的更改(子類)將保持不變。

無論您選擇哪種工具,都要注意構建一個系統,在該系統中,代碼生成非常簡單而且無痛,不僅是第一次,而且在項目的高級階段也是如此。如果不是,你會失去所有優勢。

2

我與克里斯同意,

版本的Minuteproject 4 JPA2 0.5.5還生成複合鍵與@Embeddable註釋的類。實體類擁有@EmbeddedId作爲實體,引用Embeddable類。對於組合鍵的外鍵部分,它會生成關聯的@MapsId。

與此同時,JPA2模板還沒有涵蓋複合外鍵模式。

希望它有幫助。

相關問題