hibernate hibernate.cfg.xml

Dónde colocar hibernate.cfg.xml?



(9)

CMD + N / CTR + N mientras está en Eclips, se abrirá un cuadro de diálogo allí donde debe hacer clic en la carpeta Hibernar. Abrirá una lista de archivos con la atenuación XML. Seleccione cfg.xml y haga clic en continuar y ¡cuando haya terminado! haga clic en terminar. Eclips ahora agregará el nombre de clase con el archivo cfg.xml y lo mostrará debajo de la carpeta SRC. GB

Mi proyecto es así:

/src/main/java -thegamers -app.java -hibernateutil.java

¿alguien me puede decir dónde colocar el hibernate.cfg.xml?

porque estoy recibiendo este error:

Initial SessionFactory creation failed.org.hibernate.HibernateException: hibernate.cfg.xml not found Exception in thread "main" java.lang.ExceptionInInitializerError at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:17) at thegamers.HibernateUtil.<clinit>(HibernateUtil.java:8) at thegamers.App.main(App.java:15) Caused by: org.hibernate.HibernateException: hibernate.cfg.xml not found at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170) at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2149) at org.hibernate.cfg.Configuration.configure(Configuration.java:2130) at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:13) ... 2 more


Coloque hibernate.cfg.xml en src/ folder o mencione explícitamente la ruta en el código como:

new Configuration.configure("path of hibernate.cfg.xml").buildsessionfactory()


En la raíz de su proyecto: /src (al menos como predeterminado)

¿Cómo saber si /src es el directorio de fuentes?
Cuando crea una nueva clase Java, está contenida en un paquete (normalmente se llama como el mismo nombre del directorio donde se creó). Entonces, en tu declaración de clase puedes ver algo como esto:

package foo; class MyClass{

En la configuración IDE por defecto, la clase debe encontrarse en /src/foo/MyClass.java . Como puede ver, en este escenario /src actúa como el directorio de fuentes raíz.


Es lo mismo para cualquier otro momento que necesite un archivo visible en el classpath. El archivo de configuración hibernate.cfg.xml debe estar en classpath .

Esto se puede lograr de diferentes maneras, dependiendo de su proyecto.

  • Para un proyecto WAR de aplicación web (está ejecutando el programa en un contenedor Servlet): colocarlo en WEB-INF/classes funcionará como archivos en WEB-INF/classes son visibles en el classpath cuando la aplicación se ejecuta en contenedor.

  • Para un proyecto estilo Maven (que no ejecuta el programa en un contenedor Servlet): colocarlo en /src/main/resources/ funcionará

  • De lo contrario, intente en el directorio src/ .


Estoy usando maven, y no funcionó para mí hasta que puse hibernate.cfg.xml en src/main/resources .


Se supone que el archivo debe ir a la raíz de su directorio /src , mientras que /src no se implementa, todo en él se genera / copia a WEB-INF/classes que se implementa. Hibernate necesita el archivo cfg.xml en el classpath de su proyecto para cargar sus configuraciones, su directorio WEB-INF no está en su classpath , por lo que si lo pusiera allí, estaría escondiéndolo de Hibernate y no lo haría. no funciona

Este thread le diría cómo cargar hibernate.cfg.xml desde cualquier ruta diferente.


Si está utilizando Eclipse, vaya a Proyecto -> Propiedades -> Ruta de compilación de Java -> Fuente. Puede agregar la nueva carpeta donde colocó el archivo o mover el archivo a la carpeta existente.


intente colocarlo en el directorio " src/main/resources ".


si no es un proyecto web, explícitamente así

new Configuration().configure( "pth/to/hibernate.cfg.xml").buildsessionfactory()

Espero que esto pueda ayudar

@SiB señaló un enlace (sitio web de mkyong). Se explica bien allí.