LocalSessionFactoryBean載入Hibernate 對映的幾種方式及區別

iteye_19410發表於2012-06-26
LocalSessionFactoryBean有好幾個屬性用來查詢hibernate對映檔案:

[list]
[*]mappingResources、
[*]mappingLocations、
[*]mappingDirectoryLocations
[*]mappingJarLocations
[/list]

他們的區別:

[b]mappingResources:[/b]指定classpath下[b]具體對映檔名[/b]
Java程式碼
<property name="mappingResources" value=“userTest.hbm.xml”/>  

或者利用list同時指定多個 對映檔案
Xml程式碼
<property name="mappingResources">  
<list>
<value>cn/com/env/DAO/tusers/Tusers.hbm.xml</value>
<value>cn/com/env/DAO/projectNeed/Tprojectneed.hbm.xml</value>
<value>cn/com/env/DAO/projectNeedA/Tprojectneeda.hbm.xml</value>
</list>
</property>


[b]mappingLocations:[/b]可以指定[b]任何檔案路徑,並且可以指定字首[/b]:classpath、file等
Xml程式碼
<property name="mappingLocations" value="/WEB-INF/usetTest.hbm.xml"/>  
<property name="mappingLocations" value="classpath:com/myproject/domain/userTest.hbm.xml"/>


[b]也可以用萬用字元指定,'*'指定一個檔案(路徑)名,'**'指定多個檔案(路徑)名[/b],例如:
Xml程式碼
<property name="mappingLocations" value="classpath:com/myproject/domain/**/*.hbm.xml"/>  

[b]mappingResources:[/b]

<!-- 用萬用字元解決mappingResources的繁瑣配置 -->
<property name="mappingLocations">
<list>
<value>classpath*:com/yb/vo/*.hbm.xml</value>
<value>classpath*:org/fireflow/engine/persistence/hibernate/*.hbm.xml</value>
</list>
</property>


上面的配置是在com/myporject/domain包下任何路徑下的hbm.xml檔案都被載入為對映檔案

mappingDirectoryLocations:指定對映的檔案路徑
Xml程式碼
<property name="mappingDirectoryLocations">  
<list>
<value>/WEB-INF/classes/com/hjy/model/survey</value>
</list>
</property>


[b]mappingJarLocations:[/b]指定載入的對映檔案在jar檔案

相關文章