標籤:
在Spring的applicationContext.xml中配置對應檔,通常是在<sessionFactory>這個 Bean執行個體中進行的,若配置的對應檔較少時,可以用sessionFactory的所屬類LocalSessionFactoryBean的 “mappingResources”屬性,方式包括(mappingResources,mappingLocations、 mappingDirectoryLocations與mappingJarLocations )定義方法如下:
第一種:
<property name="mappingResources">
<list>
<value>com/w3cs/vlar/hibernate/Person.hbm.xml</value>
<value>com/w3cs/vlar/hibernate/Car.hbm.xml</value>
<value>com/w3cs/vlar/hibernate/Engine.hbm.xml</value>
<value>com/w3cs/vlar/hibernate/Toy.hbm.xml</value>
</list>
</property>
當設定檔變得越來越多,閱讀和修改起來也越來越麻煩,而且基於XML的配置也可能帶來輸入的錯誤,導致你可能因為一個字元的錯誤而浪費半天時間去尋找錯誤。
第二種:
在這種情況下,可以使用LocalSessionFactoryBean的“mappingDirectoryLocations”屬性來定義對應檔,只要指出對應檔所在檔案夾就可以了,Spring會替你找出該檔案夾內所有的對應檔,定義方法如下:
<property name="mappingDirectoryLocations">
<list>
<value>WEB-INF/mappings</value>
</list>
</property>
第三種:
當然,它的屬性值也可以通過classpath來指出,這時所指定的是工程的類路徑
<property name="mappingDirectoryLocations">
<list>
<value>classpath:/my/package/*.hbm.xml</value>
</list>
</property>
第四種:
<!-- 增加了對大對象欄位處理配置Begin -->
<bean id ="oracleLobHandler"
class ="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init ="true" >
<property name ="nativeJdbcExtractor" ref ="nativeJdbcExtractor" />
</bean>
<bean id ="nativeJdbcExtractor" class ="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
lazy-init ="true"/>
<!-- 增加了對大對象欄位處理配置End -->
<!-- 定義Hibernatte架構中需要的SesscionFactory對象//-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--增加了對大對象欄位處理配置Begin -->
<property name ="lobHandler" ref ="oracleLobHandler"/>
<!--增加了對大對象欄位處理配置End -->
<property name="mappingDirectoryLocations">
<list>
<value>classpath:/my/package/login/dao/pojo/</value>
<value>classpath:/my/package/jpf/dao/pojo/</value>
......
</list>
</property>
spring載入hibernate對應檔的幾種方式 (轉)