【问题标题】:H2 DB -- Hibernate Example -- Could not parse mapping document from resourceH2 DB -- Hibernate 示例 -- 无法从资源中解析映射文档
【发布时间】:2012-11-12 15:55:48
【问题描述】:

* 以下每个文件都在同一位置 *

错误:

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:有关详细信息,请参阅 http://www.slf4j.org/codes.html#StaticLoggerBinder。 org.hibernate.InvalidMappingException:无法从资源 ./employee.hbm.xml 解析映射文档 在 org.hibernate.cfg.Configuration.addResource(Configuration.java:616) 在 org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1635) 在 org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1603) 在 org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582) 在 org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1556) 在 org.hibernate.cfg.Configuration.configure(Configuration.java:1476) 在 org.hibernate.cfg.Configuration.configure(Configuration.java:1462) 在 com.yahoo.hibernatelearning.FirstExample.main(FirstExample.java:19) 原因:org.hibernate.InvalidMappingException:无法从输入流解析映射文档 在 org.hibernate.cfg.Configuration.addInputStream(Configuration.java:555) 在 org.hibernate.cfg.Configuration.addResource(Configuration.java:613) ... 7 更多 引起:org.dom4j.DocumentException:http://hibernate.sourceforge.net/%0Ahibernate-mapping-3.0.dtd 嵌套异常:http://hibernate.sourceforge.net/%0Ahibernate-mapping-3.0.dtd 在 org.dom4j.io.SAXReader.read(SAXReader.java:484) 在 org.hibernate.cfg.Configuration.addInputStream(Configuration.java:546) ... 8 更多 线程“主”java.lang.NullPointerException 中的异常 在 com.yahoo.hibernatelearning.FirstExample.main(FirstExample.java:33)

休眠配置:hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.h2.Driver</property>
<property name="hibernate.connection.url">jdbc:h2:./db/repository</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.default_schema">PUBLIC</property>
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!--  Mapping files  -->
<mapping resource="./employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>

映射配置:employee.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="com.yahoo.hibernatelearning.Employee" table="employee">
<id name="empId" type="int" column="emp_id" >
<generator class="native"/>
</id>
<property name="empName">
<column name="emp_name" />
</property>
<property name="empSal">
<column name="emp_sal" />
</property>
</class>
</hibernate-mapping>

映射类:Employee.java

包 com.yahoo.hibernatelearning; 公共类员工{ 私人int empId; 私人字符串 empName; 私营企业; 公共 int getEmpId() { 返回员工ID; } 公共无效 setEmpId(int empId) { 这个.empId = empId; } 公共字符串 getEmpName() { 返回员工姓名; } 公共无效setEmpName(字符串empName){ 这个.empName = empName; } 公共 int getEmpSal() { 返回empSal; } 公共无效 setEmpSal(int empSal){ 这个.empSal = empSal; } }

代码:FirstExample.java

包 com.yahoo.hibernatelearning; 导入 org.hibernate.Session; 导入 org.hibernate.SessionFactory; 导入 org.hibernate.Transaction; 导入 org.hibernate.cfg.Configuration; 公共类 FirstExample { /** * @param 参数 */ 公共静态无效主要(字符串[]参数){ // TODO 自动生成的方法存根 会话 sess = null; 事务 tran = null; 尝试{ SessionFactory sessFact = new Configuration().configure().buildSessionFactory(); sess = sessFact.openSession(); System.out.println("会话:"+ sess); tran = sess.beginTransaction(); 雇员 emp = new Employee(); emp.setEmpName("Birendra Kumar"); emp.setEmpSal(12000); sess.save(emp); tran.commit(); } 捕捉(异常前){ ex.printStackTrace(); } 最后{ sess.close(); } } }

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    %0A 表示问题在于http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd 之间的换行。

    通过删除换行来解决问题:

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2013-05-19
      相关资源
      最近更新 更多