正向工程是先寫實體類和映射文件再生成表結構;逆向工程則是基於現有數據庫表,自動生成 POJO 實體類(Domain)和 Hibernate 映射文件(*.hbm.xml)。MyEclipse 內置的 Hibernate Tools 逆向向導讓這一過程變得可視化、高效。


hibernate.cfg.xml 並下載所需 JAR 包。




*.hbm.xml 映射文件,配置 <id>、<property>、<many-to-one>、<set> 等關聯映射。
| 選項 | 建議值 | 說明 |
|---|---|---|
| Primary Key Generation | assigned / identity / sequence / native | 根據數據庫主鍵策略選擇,Oracle 用 sequence,MySQL/SQL Server 用 identity/native |
| Collection Type | java.util.Set | 一對多關聯默認用 Set 避免重複,也可選 List/Bag |
| Generate equals/hashCode | 勾選 | 基於主鍵或業務鍵實現,對脫管對象合併、集合去重至關重要 |
| Generate toString | 勾選 | 方便調試日誌輸出 |
| Detect Many-to-Many | 勾選 | 自動識別中間表生成雙向多對多映射 |
many-to-one 的 column、cascade、fetch 屬性;one-to-many 的 inverse="true" 設置。<generator class="native/sequence"> 正確。joined-subclass 或 union-subclass。hibernate3-maven-plugin 或 hibernate5-maven-plugin 的 hbm2java 目標。gradle-hibernate-plugin。逆向工程極大提升了對接現有數據庫的開發效率,但生成代碼僅為「骨架」,關鍵業務邏輯、關聯細節、性能調優仍需開發者深入理解 Hibernate 機制並手工打磨。