SpringBoot中Hibernate進行數據save時,不報錯,也不進行數據保存

今天在SpringBoot中Hibernate進行數據save時,不報錯,也不進行數據保存,問題分析因爲了在支持Hibernate的Lazy init,初步懷疑是hibernate的session沒有關閉,在openSessionInViewFilter中提定FlushMode爲AUTO,或者Commit

/***
 * 增加Hibernate的Lazy init 支持
 * @return
 */
@Bean
public FilterRegistrationBean openSessionInViewFilterRegistrationBean() {
    FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
    OpenSessionInViewFilter filter = new OpenSessionInViewFilter();
    filterRegistration.setFilter(filter);
    filterRegistration.addUrlPatterns("/*");
    filter.setFlushMode(FlushMode.AUTO);
    filter.setSingleSession(true);
    filter.setSessionFactoryBeanName("sessionFactory");
    filterRegistration.setAsyncSupported(true);
    filterRegistration.setOrder(1);
    return filterRegistration;
}

再次測試問題依舊,只是部分表的操作save失敗,然後在失敗的地方,調用dao.getHibernateTemplate().flush()手動刷新即可

原因就是hibernatesession沒有關閉導致,所以手動刷新後問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章