1. 程式人生 > >Spring 4.2.5 + Hibernate 5.2.10 報錯筆記

Spring 4.2.5 + Hibernate 5.2.10 報錯筆記

專案離線無網開發,無法帖出報錯控制檯資訊

當@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>