Программно создать SessionFactory в Spring - PullRequest
2 голосов
/ 30 июня 2011

Предположим, я программно создаю AnnotationSessionFactoryBean и правильно устанавливаю различные свойства. Как я могу затем извлечь Hibernate SessionFactory, поскольку все методы, относящиеся к созданию SessionFactory, защищены?

AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean();
SessionFactory sessionFactory = sessionFactoryBean.newSessionFactory(); // Protected!!

1 Ответ

9 голосов
/ 30 июня 2011

Используйте getObject(), после вызова afterPropertiesSet():

sessionFactoryBean.afterPropertiesSet();
SessionFactory sessionFactory = sessionFactoryBean.getObject();

(AnnotationSessionFactoryBean реализует FactoryBean<SessionFactory>)

Будьте осторожны: делая это, оно становится вашимответственность за то, чтобы SessionFactory был закрыт, когда вы закончите с ним.

...