hibernate给了我 - “main”org.hibernate.MappingNotFoundException:资源:hibernate_hbm.xml.UserDetails.hbm.xml未找到

问题描述 投票:0回答:1

我正在使用hibernate。我创建了一个名为UserDetails(POJO类)的表,其中包含id和name。然而,我发现很难执行该程序,因为它给了我这个错误 -

Exception in thread "main" org.hibernate.MappingNotFoundException: resource: 
hibernate_hbm.xml.UserDetails.hbm.xml not found
at org.hibernate.cfg.Configuration.addResource(Configuration.java:740)
    at 
org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2197)
    at 
org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2169)
   at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2149)
   at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2102)
   at org.hibernate.cfg.Configuration.configure(Configuration.java:2017)
   at hibernate_hbm.xml.A.main(A.java:19)

所有文件都在--hibernate_hbm.xml包-my文件是:

[1]用户详细信息 -

package hibernate_hbm.xml;


public class UserDetails {


  private int id;
  private String name;

 //setter & getters        

 }

[2]包含UserDetails对象和SessionFactory的A.java文件 -

package hibernate_hbm.xml;

 import org.hibernate.Session;
  import org.hibernate.SessionFactory;
  import org.hibernate.cfg.Configuration;

 public class A {

   public static void main(String[] args) {

    UserDetails user1 = new UserDetails();
    user1.setId(101);
    user1.setName("Mark");

    UserDetails user2 = new UserDetails();
    user2.setId(102);
    user2.setName("Cynthiya");

    SessionFactory sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
    Session session = sessionFactory.openSession();
    session.beginTransaction();
    session.save(user1);
    session.save(user2);
    session.getTransaction().commit();
    session.close();

    }

 }

[3] hibernate.cfg.xml-

 <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
<session-factory>
    <property 
   name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property>
  name="hibernate.connection.url">jdbc:mysql:
  //localhost:3306/testingcampus</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password"></property>
    <property 
   name="hibernate.current_session_context_class">thread</property>
    <property 
   name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hbm2ddl.auto">create</property>
    <mapping resource="hibernate_hbm.xml.UserDetails.hbm.xml" />
    </session-factory>
  </hibernate-configuration>

[4] UserDetails.hbm.xml文件 -

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
   <class name="hibernate_hbm.xml.UserDetails" table="UserInfo">
   <id name="id"></id>
  <property name="name"></property>
</class>
</hibernate-mapping>
java xml hibernate
1个回答
0
投票

由于该文件位于类路径上,请尝试hibernate.cfg.xml中的映射资源值,如下所示:

“类路径:UserDetails.hbm.xml”

<mapping resource="classpath:UserDetails.hbm.xml" />

请共享您所遵循的文件夹结构,因为这将有助于确切使用的路径

© www.soinside.com 2019 - 2024. All rights reserved.