我正在尝试学习Hibernate + Maven。我正在尝试连接到PostgreSQL数据库,但是我收到以下错误:
初始SessionFactory创建failed.org.hibernate.HibernateException:找不到hibernate.cfg.xml
hibernate.cfg.xml
文件已在src/main/resources
文件夹下,我已将该文件夹添加为源文件夹。
以下是会话工厂初始化的代码:
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
return configuration.buildSessionFactory();
编辑:这是pom.xml
<modelVersion>4.0.0</modelVersion>
<groupId>com.jee.mavenapp</groupId>
<artifactId>hibernate-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>hibernate-example</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.5.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
</dependencies>
答案 0 :(得分:0)
在xml文件前添加正斜杠。
Configuration configuration = new Configuration().configure("/hibernate.cfg.xml");
您也可以省略参数,因为那是default parameter,例如
Configuration configuration = new Configuration().configure();
您需要执行此操作才能加载classpath上的文件。
答案 1 :(得分:0)
这不是问题的解决方法,但是您可以将hibernate.cfg.xml文件放在与构建会话工厂的Java类相同的包中(以确保它在您的类路径中)。并做这样的事情
Configuration configuration = new Configuration().configure("/com/github/fluent/hibernate/example/mysql/hibernate.cfg.xml");
return configuration.buildSessionFactory();
替换&#34; / com / github / fluent / hibernate / example / mysql /&#34;与你的班级包。
P.S。你可以在这里找到一个非常简单的控制台Hibernate应用程序fluent-hibernate-mysql