No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
出错原因很简单:
没有给操作数据库的service方法配置事务。
以我遇到的例子,事务代理工厂bean配置如下:
而抛错的service方法名为searchUser(...),故解决方法就是为search*的方法添加事务:
出错原因很简单:
没有给操作数据库的service方法配置事务。
以我遇到的例子,事务代理工厂bean配置如下:
<bean id="baseTxService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="get*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="draw*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="find*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="load*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="save*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="update*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="delete*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="add*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="import*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
</bean>
而抛错的service方法名为searchUser(...),故解决方法就是为search*的方法添加事务:
<bean id="baseTxService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="get*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="draw*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="find*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="load*">
PROPAGATION_SUPPORTS,readOnly,-DataAccessException,-BaseException
</prop>
<prop key="save*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="update*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="delete*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="add*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="import*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
<prop key="search*">
PROPAGATION_REQUIRED,-DataAccessException,-BaseException
</prop>
</props>
</property>
</bean>