#java #multithreading #hibernate #dropwizard
#java #многопоточность #спящий режим #dropwizard
Вопрос:
У меня есть поток, который ожидает завершения процесса, а затем ему необходимо обновить объект. Но я получаю
Исключение в потоке «Thread-22» org.hibernate.Исключение HibernateException: в настоящее время сеанс не привязан к контексту выполнения
Я попытался открыть новый сеанс (см. Код ниже). Управление сеансами обычно выполняется @UnitOfWork, но эта аннотация, похоже, применима только к ресурсам.
public class ConfigDAO extends AbstractDAO<Config>
{
private final SessionFactory sessionFactory;
public ConfigDAO(SessionFactory factory) {
super(factory);
this.sessionFactory = factory;
}
public Config updateFromNewSession(Config config) {
System.out.print("current session: ");
Session session = sessionFactory.openSession();
System.out.println(session);
session.persist(config);
session.close();
return config;
}
Комментарии:
1. Может быть, быстрый просмотр документации поможет? dropwizard.io/1.3.9/docs/manual /…
2. В документации указано, что «Это создаст прокси вашего класса, который откроет сеанс гибернации с транзакцией вокруг методов с аннотацией @UnitOfWork». Но опять же, это примечание применимо только к ресурсам.
3. И если мы посмотрим здесь? github.com/dropwizard/dropwizard/blob /…
4. Отлично, я попробую. Спасибо за этот очень полезный ресурс.
5. Это работает. еще раз спасибо