barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

вторник, 5 июня 2012 г.

Hibernate 4.1: Инициализация SessionFactory

При генерации класса HibernateUtil средствами Netbeans 7.1.2 (не очень люблю такого рода генераторы, но все же иногда пользуюсь =) ) генерируемый класс просто пестрит deprecated методами и классами, ставшими таковыми при появлении 4ой версии Hibernate:


Во-первых, документация Hibernate предписывает использовать класс Configuration вместо AnnotationConfiguration:
Deprecated. All functionality has been moved to Configuration
Но это не решает проблемы с  методом buildSessionFactory:
Deprecated. Use buildSessionFactory(ServiceRegistry) instead
В итоге создание SessionFactory выглядит так:
private static final SessionFactory sessionFactory;
private static final ServiceRegistry serviceRegistry;
...
Configuration configuration = new Configuration();
configuration.configure(); // при необходимости нужно указать путь к hibernate.cfg.xml
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();    
sessionFactory = configuration.buildSessionFactory(serviceRegistry); 
Правда, судя по документации, тоже не очень долгосрочное решение, потому что класс Configuration разработчики Hibernate также планируют сделать устаревшим и вообще отказаться от него к 5му релизу в пользу классов ServiceRegistryBuilder и MetadataSources.

Комментариев нет:

Отправить комментарий