今天写项目的时候遇到一个小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()的方法中。
当然,里面的细节我就不多做解释了。