Spring 4.2.5 + Hibernate 5.2.10 报错笔记

来源:互联网 发布:个人职业规划 知乎 编辑:程序博客网 时间:2024/06/05 03:57

项目离线无网开发,无法帖出报错控制台信息

当@Transactional的isolation属性指定了值时Hibernate执行总是抱错无法执行

通过跟踪代码发现Hibernate 5.2.10的ConnectionReleaseMode默认AFTER_TRANSACTION

Spring期望值是ON_CLOSE


如果不想改变Spring+Hibernate的版本的话,解决办法如下

改变LocalSessionFactoryBean bean,在hibernateProperties属性上添加hibernate.connection.handling_mode=DELAYED_ACQUISITION_AND_HOLD


<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">          <!-- 隐藏其他属性设置 -->          <property name="hibernateProperties">               <props>                     <prop key="hibernate.connection.handling_mode">DELAYED_ACQUISITION_AND_HOLD</prop>                    <!-- 也可以使用下面这个,但它已经标注为弃用,推荐使用上面的 --><!--<prop key="hibernate.connection.release_mode">ON_CLOSE</prop> -->            </props>              </property>   </bean> 


原创粉丝点击