Where to place hibernate.cfg.xml?

Solution 1:

The config file hibernate.cfg.xml needs to be on the classpath.

This can be accomplished in different ways, depending on your project.

  • For a web-app WAR project (you are running the program in a Servlet container): placing it in WEB-INF/classes will work as files in WEB-INF/classes are visible on the classpath when app is running in container.

  • For a Maven-style project (not running the program in a Servlet container): placing it in /src/main/resources/ will work

  • For otherwise, try in the src/ directory.

Solution 2:

I'm using maven, and it didn't work for me until I put hibernate.cfg.xml in src/main/resources.

Solution 3:

At the root of your project: /src (at leat as default)

How to know if /src is the sources dir?
When you create a new Java class, it is contained in a package (normally it is called as the same name of the dir where it is created). So, in your class declarion you can see something like this:

package foo;

class MyClass{

In default IDE settings, the class should found under /src/foo/MyClass.java. As you can see, in this scenario /src acts as root sources dir.