即
无法获得当前线程的事务同步会话
这里给出常规的解决办法:
https://www.cnblogs.com/zhengsonglin/articles/8159117.html
https://blog.csdn.net/flyjiangs/article/details/51537381
关于这个问题困扰了我很久,到处百度搜集解决办法,开始还以为是配置的问题:
配置如下:
spring配置文件中applicationContext.xml中:
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
然后在Dao类上加上注解@Transactional就好 了
@Transactional
public class UserDaoImpl implements UserDao2 {
按以上来用是没有问题的。
可我还是报错Could not obtain transaction-synchronized Session for current thread
寻找半天觉得自己真的没错,就重新试了一遍,在使用@Transactional导入包的时候,看见有两个包,这时候感觉像是打脸一样,我才明白是包导错了。。。。。 应该导入spring的Transactional的包即rg.springframework.transaction.annotation.Transactional
而不是javax.transaction.Transactional