Spring 4.2.5 + Hibernate 5.2.10 報錯筆記
阿新 • • 發佈:2019-01-24
專案離線無網開發,無法帖出報錯控制檯資訊
當@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>