Hibernate.cfg.xml suele estar en el root de tu proyecto, fuera de todo paquete. Si lo pones en otro directorio te aparecerá el siguiente error:
Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found Exception in thread "main" java.lang.ExceptionInInitializerError at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:25) at com.mkyong.persistence.HibernateUtil.<clinit>(HibernateUtil.java:8) at com.mkyong.common.App.main(App.java:11) Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147) at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405) at org.hibernate.cfg.Configuration.configure(Configuration.java:1427) at org.hibernate.cfg.Configuration.configure(Configuration.java:1414) at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:13) ... 2 more
Para decirle a Hibernate como encontrar hibernate.cfg.xml hay que modificar el argumento del método configure() como se muestra a continuación.
SessionFactory sessionFactory = new Configuration() .configure("/com/companyname/example/hibernate.cfg.xml") .buildSessionFactory(); return sessionFactory;
HibernateUtil.java
Aquí se muestra un ejemplo completo para cargarlo desde el directorio “/com/companyname/example/“.
import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { // load from different directory SessionFactory sessionFactory = new Configuration().configure( "/com/companyname/example/hibernate.cfg.xml") .buildSessionFactory(); return sessionFactory; } 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; } public static void shutdown() { // Close caches and connection pools getSessionFactory().close(); } }
FUENTE: http://www.mkyong.com/hibernate/how-to-load-hibernate-cfg-xml-from-different-directory/
No hay comentarios:
Publicar un comentario