【发布时间】:2016-11-18 04:21:47
【问题描述】:
我正在尝试将休眠会话工厂自动装配到线程的运行方法中。但它显示以下错误
Exception in thread "Timer-6" org.hibernate.HibernateException: No Session found for current thread
我的班级如下
public class CroneJobNew extends TimerTask {
@autowired
private SessionFactory sessionFactory ;
@Override
public void run() {
List<Shop> shops = sessionFactory.getCurrentSession().createCriteria(Shop.class).list();
System.out.println("shops size" + shops.size());
}
}
我该如何解决这个问题?
【问题讨论】:
-
是否有任何具体原因为什么您不使用
@EnableAsync和@Async注释来处理线程?使用这些注释进行自动装配就像一个魅力.. -
我正在使用这个线程来创建一个计时器。我的类CroneJobNew默认实现了这个线程类。
-
看看这个答案,Spring and hibernate: No Session found for current thread,我认为这会有所帮助。
标签: spring multithreading hibernate autowired