今天在写SSH整合的时候,用以下方式对SessionFactory进行配置:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
<prop key="show_sql">true</prop>
<prop key="format_sql">true</prop>
<prop key="hbm2ddl.auto">update</prop>
</props>
</property>
<!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> -->
<property name="mappingLocations"
value="classpath:com/caohui/comicgamesspace/entities/*.hbm.xml"></property>
</bean>
然后我发现了一个十分严重的问题,这样配置Hibernate竟然不能对映射文件自动创建数据表,试了很多方法都不行。然后,我又将红字部分改为如下方式,在每个前面加上hibernate.,居然就可以了!!
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
我不知道这是为什么,我在把Spring和Hibernate单独整合,不加Struts2的时候,第一种方式也可以。但是加了Struts2之后第一种方式变得无效了。有咩大神告诉我为什么。。。