1. 注解方式
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<!--指明使用注解的实体类-->
<property name="annotatedClasses">
<list>
<value>workbench.entities.generated.LogonHis</value>
</list>
</property>
<!--使用注解的实体类包 推荐使用改写法来替换上面写法-->
<!--
<property name="packagesToScan">
<list>
<value>workbench.entities.generated.*</value>
</list>
</property>
-->
<property name="hibernateProperties">
<props>
<!-- hibernate数据库方言配置(即连接哪种数据库) -->
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.format_sql">true</prop>
<!-- 启用查询缓存,程序中须手动操作 -->
<prop key="hibernate.jdbc.fetch_size">50</prop>
<!-- hibernate批量插入,删除和更新时每次操作的记录数 -->
<prop key="hibernate.jdbc.batch_size">50</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.connection.release_mode">after_transaction</prop>
<prop key="hibernate.connection.isolation">1</prop>
<!-- 启用查询缓存,程序中须手动操作 -->
<prop key="hibernate.cache.use_second_level_cache">false</prop>
</props>
</property>
</bean>
2.配置文件方式
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--指明使用配置文件的实体类-->
<property name="mappingDirectoryLocations">
<list>
<!-- spring容器会去该包及子包下搜索所有的映射文件 -->
<value>classpath:workbench/entities/generated/</value>
<value>classpath:workbench/apps/css/entities/generated/</value>
<value>classpath:workbench/app/cc/entities/generated/</value>
<value>classpath:workbench/app/cc/entities/hs/</value>
<value>classpath:workbench/app/cc/entities/hx/</value>
<value>classpath:com/worldline/wcs/entity/</value>
<value>classpath:com/worldline/wcs/dataload/entity/</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<!-- hibernate数据库方言配置(即连接哪种数据库) -->
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.format_sql">true</prop>
<!-- 启用查询缓存,程序中须手动操作 -->
<prop key="hibernate.jdbc.fetch_size">50</prop>
<!-- hibernate批量插入,删除和更新时每次操作的记录数 -->
<prop key="hibernate.jdbc.batch_size">50</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.connection.release_mode">after_transaction</prop>
<prop key="hibernate.connection.isolation">1</prop>
<!-- 启用查询缓存,程序中须手动操作 -->
<prop key="hibernate.cache.use_second_level_cache">false</prop>
</props>
</property>
</bean>
3.混合使用
由于配置文件太多,修改起来麻烦,所以同时使用两种配置方式。先删除原有的配置文件,使用注解方式映射,新建的实体类可以直接使用注解方式映射。这样既不影响旧代码的功能,也能扩展新代码的功能。不过这不是长久之计,推荐全部使用注解,这样更灵活,即使切换成MyBatis也可以正常使用。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<!--指明使用注解的实体类-->
<property name="annotatedClasses">
<list>
<value>workbench.entities.generated.LogonHis</value>
</list>
</property>
<!--指明使用配置文件的实体类-->
<property name="mappingDirectoryLocations">
<list>
<!-- spring容器会去该包及子包下搜索所有的映射文件 -->
<value>classpath:workbench/entities/generated/</value>
<value>classpath:workbench/app/cc/entities/generated/</value>
<value>classpath:workbench/app/cc/entities/hs/</value>
<value>classpath:workbench/app/cc/entities/hx/</value>
<value>classpath:com/worldline/wcs/entity/</value>
<value>classpath:com/worldline/wcs/dataload/entity/</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<!-- hibernate数据库方言配置(即连接哪种数据库) -->
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.format_sql">true</prop>
<!-- 启用查询缓存,程序中须手动操作 -->
<prop key="hibernate.jdbc.fetch_size">50</prop>
<!-- hibernate批量插入,删除和更新时每次操作的记录数 -->
<prop key="hibernate.jdbc.batch_size">50</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.connection.release_mode">after_transaction</prop>
<prop key="hibernate.connection.isolation">1</prop>
<!-- 启用查询缓存,程序中须手动操作 -->
<prop key="hibernate.cache.use_second_level_cache">false</prop>
</props>
</property>
</bean>