Jugando con Hibernate, me he puesto con la última versión, la 4 no sé cuántos. Me cojo mi viejo código, copy-paste para empezar a hacer algo y me encuentro con
return new Configuration().configure().
buildSessionFactory();
Pues sí, el método buildSessionFactory() está obsoleto. Mirando la API, te dice que uses en su lugar buildSessionFactory(ServiceRegistry). Chachi piruli, ¿y qué demonios es y de dónde saco un ServiceRegistry de esos? Ale, toca mirar la documentación oficial y nos encontramos esto http://docs.jboss.org/hibernate/orm/4.1/quickstart/en-US/html_single/#hibernate-gsg-tutorial-basic-test donde usan, por supuesto, el método obsoleto.
A googlear un poco y veo que es un problema compartido por mucha gente, nadie encuentra una solución oficial para ello. En Stack Overflow muestran una solución que funciona y que es más o menos la que ha empezado a seguir la gente Así que nada, copy-paste de aquí y allá y aquí queda
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Este lee el fichero de configuración por defecto de hibernate, el hibernate.cfg.xml en el classpath.
Pero el ServiceRegistryBuilder también esta Deprecated… no entiendo la solución.
Hola:
Allá, por el 2012 (lo siento, no se ve el año del post), imagino que no lo estaba. De hecho, esta obsoleto desde la versión 4.3, que es de finales del año pasado/principios de este https://hibernate.atlassian.net/browse/HHH/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel
Se bueno.