1. 程式人生 > >hibernate呼叫sessionFactory.getCurrentSession().save(entity);資料無法插入到資料庫

hibernate呼叫sessionFactory.getCurrentSession().save(entity);資料無法插入到資料庫

       今天在學習使用hibernate4,在呼叫sessionFactory.getCurrentSession().save(entity);進行儲存操作時,方法執行成功,但是資料沒有插入到資料庫,控制檯也不報錯,在網上各種查詢解決方法之後找到思路,這個問題是跟flushMode的屬性有關,為什麼會這樣呢?因為我在dispatcher-servlet.xml和spring-hibernate.xml中都是配置的
   <context:component-scan base-package="com.test">
後來把dispatcher-servlet.xml中改為
   <context:component-scan base-package="com.orange"> 
    	<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> 
   </context:component-scan>
spring-hibernate.xml中改為
   <context:component-scan base-package="com.orange"> 
    	<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 
   </context:component-scan>

重新執行專案,資料能夠insert到資料庫中了。記得web.xml裡配置

   <filter>
	<filter-name>OpenSessionInViewFilter</filter-name>
	<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
	<init-param>
	    <param-name>flushMode</param-name>
	    <param-value>AUTO</param-value>
	</init-param>
   </filter>
   <filter-mapping>
	<filter-name>OpenSessionInViewFilter</filter-name>
	<url-pattern>/*</url-pattern>
   </filter-mapping>
我是個小菜鳥,只是把我的問題記錄在這兒了,大家不喜勿噴。