首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring 整合 Hibernate:映射檔配置全攻略

     編輯:Java 相關知識

背景

Spring 透過 org.springframework.orm.hibernate3.LocalSessionFactoryBean 完美替代傳統 hibernate.cfg.xml,提供多種靈活的映射檔載入方式。本文詳細比較四種核心屬性的適用場景與最佳實踐。

四大映射載入屬性詳細比較

1. mappingResources —— 精確指定 classpath 下映射檔

<property name="mappingResources">
    <list>
        <value>com/domain/User.hbm.xml</value>
        <value>com/domain/Order.hbm.xml</value>
    </list>
</property>

優點:配置明確,無歧義
缺點:實體類增加時需手動維護,易遺漏,維護成本高

2. mappingLocations —— 支援任意路徑與通配符(推薦)

支援 file:、classpath: 及 Ant 風格通配符:

<property name="mappingLocations">
    <list>
        <!-- 絕對檔案路徑 -->
        <value>file:/WEB-INF/mappings/Order.hbm.xml</value>
        <!-- classpath 相對路徑 -->
        <value>classpath:com/domain/*.hbm.xml</value>
        <!-- 多層目錄通配 -->
        <value>classpath:com/**/mappings/*.hbm.xml</value>
    </list>
</property>

關鍵差異:* 單層匹配,** 遞歸多層目錄

3. mappingDirectoryLocations —— 整個目錄批量載入

<property name="mappingDirectoryLocations">
    <list>
        <value>classpath:com/domain/hbm</value>
        <value>file:/WEB-INF/hbm</value>
    </list>
</property>

適用於映射檔集中存放、命名規範的場景,自動載入目錄下所有 .hbm.xml

4. mappingJarLocations —— 從 JAR 包載入(較少用)

<property name="mappingJarLocations">
    <value>file:/lib/domain-mappings.jar</value>
</property>

適合跨專案共享映射定義的企業級應用

最佳實踐建議

場景推薦屬性理由
中小型專案,映射檔較少mappingResources直觀可控
大型專案,頻繁新增實體mappingLocations + 通配符零維護,自動發現
映射檔獨立模組打包mappingJarLocations解耦共享
遷移舊專案,目錄結構固定mappingDirectoryLocations最小改動

進階技巧:混合使用註解與 XML

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="packagesToScan" value="com.domain"/>  <!-- 掃描註解實體 -->
    <property name="mappingLocations">
        <value>classpath:legacy-mappings/*.hbm.xml</value>  <!-- 兼容舊版 XML -->
    </property>
</bean>

同時啟用 packagesToScan 與 mappingLocations,實現新舊映射方式平滑共存。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved