Здравствуйте,
Сразу только скажу, что с hibernate (и вообще ORM) только со вчерашнего дня общаюсь.
Реализовал по примерам примерно то, что мне нужно.
Суть проблемы — грубо говоря, из метода main() все работает)
А вот когда тот же код запускается из другого потока — поток просто завершается, без каких-либо исключений.
Может, конечно с потоком что-то не так, но я подозреваю, что проблема в открытии сессии (судя по отладке).
Очевидно что метод, описанный в руководстве:
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory();
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
и/или опция конфигурации
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
не годится, если с сессией работают из другого потока. О чем, там, кстати, и написано.
Но как правильно это надо реализовать в моем случае — не понимаю.
вот последние сообщения логгера
16:42:12 [DBAdapterToCKKI] root In HibernateUtil try-clause
16:42:12 [DBAdapterToCKKI] Connect In HibernateUtil try-clause via loggerConnect DEBUG*****