Spring对Hibernate Session Factory提供了高度封装。如下例所示。
 
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="mappingResources">
<list>
<value>product.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
</property>
</bean>
然而,在我的案例中,因为业务需要,我们必须在运行时加入新的HBM。在单独使用Hibernate的时,只要取到Hiberante Configuration对象,修改一下配置,然后rebuild session factory就可以了。
可是经Spring这一封装,我只能取到一个只读的SessionFactory对象,无法进行重置。
这里有两种可能方法,但我都不知道如何做。
1,取到LocalSessionFactoryBean对象进行重置。
2,取到Hibernate Configuration对象进行重置。