LocalSessionFactoryBean有好几个属性用来查找hibernate映射文件:
mappingResources、mappingLocations、mappingDirectoryLocations与mappingJarLocations
他们的区别:
mappingResources:指定classpath下具体映射文件名
- <propertyname="mappingResources"value=“userTest.hbm.xml”/>
<property name="mappingResources" value=“userTest.hbm.xml”/>
或者利用list同时指定多个映射文件
- <propertyname="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>
<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>
mappingLocations:可以指定任何文件路径,并且可以指定前缀:classpath、file等
- <propertyname="mappingLocations"value="/WEB-INF/usetTest.hbm.xml"/>
- <propertyname="mappingLocations"value="classpath:com/myproject/domain/userTest.hbm.xml"/>
<property name="mappingLocations" value="/WEB-INF/usetTest.hbm.xml"/> <property name="mappingLocations" value="classpath:com/myproject/domain/userTest.hbm.xml"/>
也可以用通配符指定,'*'指定一个文件(路径)名,'**'指定多个文件(路径)名,例如:
- <propertyname="mappingLocations"value="classpath:com/myproject/domain/**/*.hbm.xml"/>
<property name="mappingLocations" value="classpath:com/myproject/domain/**/*.hbm.xml"/>
上面的配置是在com/myporject/domain包下任何路径下的hbm.xml文件都被加载为映射文件mappingDirectoryLocations:指定映射的文件路径
- <propertyname="mappingDirectoryLocations">
- <list>
- <value>/WEB-INF/classes/com/hjy/model/survey</value>
- </list>
- </property>
<property name="mappingDirectoryLocations"> <list> <value>/WEB-INF/classes/com/hjy/model/survey</value> </list> </property>
mappingJarLocations:指定加载的映射文件在jar文件
本文转自:http://hlbng.iteye.com/blog/397266