项目离线无网开发,无法帖出报错控制台信息
当@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>