【问题标题】:Exception in thread "main" org.hibernate.HibernateException:线程“主”org.hibernate.HibernateException 中的异常:
【发布时间】:2017-08-26 19:46:17
【问题描述】:

您好,我正在尝试简单的休眠程序,但无法解决此问题,谁能帮忙

UserDetails.class

package org.pavan.dto;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class UserDetails {
@Id
private int userId;
private String userName;
public int getUserId() {
    return userId;
}
public void setUserId(int userId) {
    this.userId = userId;
}
public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
}

}

HibernateTest.java

包 org.pavan.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.pavan.dto.UserDetails;

public class HibernateTest {

public static void main(String[] args) {
    UserDetails user =new UserDetails();
    user.setUserId(1);
    user.setUserName("First User");
    SessionFactory sessionFactory = new Configuration().configure("C:\\Users\\pavan\\workspace\\FirstHibernateProject\\src\\hibernate.cfg.xml").buildSessionFactory();
    Session session=sessionFactory.openSession();
    session.beginTransaction();
    session.save(user);
    session.getTransaction().commit();

    }

}

hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!--

~ Hibernate,惯用 Java 的关系持久性 ~ ~ 许可证:GNU 宽松通用公共许可证 (LGPL),2.1 版或更高版本。 ~ 查看根目录下的lgpl.txt文件或http://www.gnu.org/licenses/lgpl-2.1.html。 -->

<session-factory>

    <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/hibernatedb</property>
    <property name="connection.username">root</property>
    <property name="connection.password">admin</property>

    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>

    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

    <!-- Disable the second-level cache  -->
    <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>

    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>

    <!-- Names the annotated entity class -->
    <mapping class="org.pavan.dto.UserDetails"/>

</session-factory>

错误:

INFO:配置资源:C:\Users\pavan\workspace\FirstHibernateProject\src\hibernate.cfg.xml 线程“主”org.hibernate.HibernateException 中的异常:未找到 C:\Users\pavan\workspace\FirstHibernateProject\src\hibernate.cfg.xml 在 org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147) 在 org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405) 在 org.hibernate.cfg.Configuration.configure(Configuration.java:1427) 在 org.pavan.hibernate.HibernateTest.main(HibernateTest.java:14)

谁能帮忙

提前致谢

【问题讨论】:

  • C:\Users\pavan\workspace\FirstHibernateProject\src\hibernate.cfg.xml 这个文件是否存在?该错误表示未找到此文件。你的hibernate.cfg.xml 文件在哪里?
  • 我已将其保存在所有包外的 Src 文件夹中,在 src 内
  • 所以你是说你能在这条路径C:\Users\pavan\workspace\FirstHibernateProject\src找到hibernate.cfg.xml?真的很奇怪,它无法找到它。只要确保文件名中没有拼写错误。
  • 是的,它存在于同一个文件夹中。我不知道为什么我会收到此错误

标签: java eclipse hibernate mapping


【解决方案1】:

在你的路径中没有获得 hibernate‌​.cfg.xml 的一些原因,

String path = String.format("%s/%s",System.getProperty("user.dir"), "src/hibernate.cfg.xml");

SessionFactory sessionFactory = new Configuration().configure(path).buildSessionFactory();

或者你可以试试 -> 在 src 中添加一个resources 文件夹,然后

标记为资源目录

将你的 hibernate.cfg.xml 添加到里面,

 SessionFactory sessionFactory =   return new Configuration().configure().buildSessionFactory();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2016-07-22
    • 2013-02-17
    • 2013-12-20
    相关资源
    最近更新 更多