hibernate4沒法保存數據

初次使用hibernate4,使用getCurrentSession保存對象時沒法將對象的數據保存進數據庫,通過一番試驗後,發現原來要配置事務才能保存數據。 web


保存數據失敗緣由: spring


沒有配置事務,經過手動寫一個事務,才能提交數據。手動寫一個事務,用getCurrentSession也沒法保存數據,只能使用openSession才能保存數據。 sql


解決辦法: 數據庫


配置spring聲明式事務,不建議使用註解來配置事務,註解配置事務,只在xml配置切面事務失敗時,才用來測試。通常xml配置切面事務失敗緣由,找不到包,還有切面路徑找不到類 網絡



說明: session


一、要注意,在web.xml配置openSessionInViewFilter用來啓動hibernate,在通過url請求後,這裏就會開啓hibernate的session,若是不配置,就沒法使用getCurrentSession了,詳細配置,請看下面web.xml的配置, app


二、下面的代碼是用AOP配置的事務,註解方式的事務我已經註釋掉了,請看UserService裏面註釋掉的事務註解 maven


三、dao和service我都是用註解注入的 測試


四、下面的幾個xml文件除了applicationContext-security.xml這個配置文件外,其它的幾個xml文件都是參照easyUI教程中的孫宇老師的視頻配置的,有興趣的朋友可下載下來看看,比較適合剛入門的朋友 url


五、項目是用maven搭建的,比較方便的,不用再去找jar包,只要在pom.xml文件配置,在鏈接網絡的前提下就能夠自動下載jar包了,能夠看看下面的pom.xml文件中,我下載了那些jar包


六、由於我在spring-hibernate.xml文件配置了propkey=hibernate.show_sql${hibernate.show_sql}/prop,這個爲true時,若是執行了sql語句,就會在控制檯打印出sql語句的,我在測試時,若是數據沒保存進數據庫,控制檯是不會打印出sql語句的,成功保存數據後,打印出的信息:

相關文章
相關標籤/搜索