淺析Hibernate對象關(guān)系映射
Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate對象關(guān)系映射,包括介紹Hibernate源代碼的分析等方面。
同樣由于Hibernate官方文檔的影響,很多Hibernate開發(fā)者誤以為Hibernate對象關(guān)系映射一定要一個表對應(yīng)一個對象,并將映射文件和對象文件放在同一目錄下。實(shí)際上,該模式是為規(guī)范性考慮而設(shè)計的,因?yàn)樵诙嗳藚⑴c的項(xiàng)目中,多人要維護(hù)同一文件容易產(chǎn)生沖突;當(dāng)項(xiàng)目比較小時,配置文件的維護(hù)人員少,我們完全可以將。hbm.xml文件合并到一個或者幾個文件中。依據(jù)作者本人的項(xiàng)目設(shè)計開發(fā)經(jīng)驗(yàn),***是項(xiàng)目中有幾人同時從事O/R映射和持久工作,則設(shè)定幾個。hbm.xml文件,每人維護(hù)一個。當(dāng)然,為了便于分類和管理,每人的工作應(yīng)該按邏輯劃分。
大型項(xiàng)目中的文件配置示例如下:
- <hibernate-configuration>
- <session-factory>
- <!—映射文件分散 -->
- <mapping resource="com/hongsoft/test/ persistence/Cat.hbm.xml"/>
- <mapping resource="com/hongsoft/test/ persistence/Animal.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
小型項(xiàng)目中的文件配置示例如下:
- <hibernate-configuration>
- <session-factory>
- <!—映射文件集中 -->
- <mapping resource="res_hibernate_map.xml"/>
- </session-factory>
- </hibernate-configuration>
要注意的是, 從對Hibernate源代碼的分析可知,指定Hibernate對象關(guān)系映射時,不能用絕對目錄,只能用相對目錄;而且,系統(tǒng)以classes根目錄為當(dāng)前目錄。
【編輯推薦】