Я пытаюсь autwired hibernate session factory в методе запуска потока. Но он показывает следующее сообщение об ошибкеAutowiring sessionfactory внутри потока запустить метод не работает
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());
}
}
Как SLOVE это?
Есть ли какая-либо конкретная причина, почему вы не используете аннотации @ @ EnableAsync и '@ Async' для обработки потоков? Autowiring с этими аннотациями на месте работает как шарм. –
Я использую эту тему для создания таймера. Мой класс CroneJobNew реализует этот класс потоков по умолчанию. – Jerin
просто посмотрите этот ответ, [Весна и спящий режим: сеанс не найден для текущего потока] (http://stackoverflow.com/questions/10298483/spring-and-hibernate-no-session-found-for-current-thread), Я думаю, что это поможет. –