1. 程式人生 > >關於: No Hibernate Session bound to thread, and configuration does not allow creation of non-transacti

關於: No Hibernate Session bound to thread, and configuration does not allow creation of non-transacti

今天寫專案的時候遇到一個小bug,由於天氣太熱,有點浮躁,所以開始找不到問題,最後平靜心態,按提示尋源頭,終於找到了節點所在,現在分享給大家:

該異常是獲取session的時候報錯的。我用的是getCurrentSession()來獲取session。但明顯獲取不到;網上查了一下:

用openSession()最後需要close掉;

用getCurrentSession()需要套上分散式事務管理機制。而之前我已經在spring容器中封裝好並用上了。

以上都沒問題。

查了半天,最後發現節點出現在我的spring容器中的事務管理機制的方法沒有設定好。

<tx:method name="get*" read-only="true"  rollback-for="NoProductInStockException" />

<tx:method name="add*" propagation="REQUIRED"/>

其中name填寫方法,設定的時候,一定要包含到你需要用到getCurrentSession()的方法中。

當然,裡面的細節我就不多做解釋了。