【问题标题】:Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from resource employee.hbm.xml线程“主”org.hibernate.InvalidMappingException 中的异常:无法从资源employee.hbm.xml 解析映射文档
【发布时间】:2013-05-19 03:47:10
【问题描述】:

您好,我遇到了异常:

线程“main”org.hibernate.InvalidMappingException 中的异常:无法从资源employee.hbm.xml 解析映射文档

employee.hbm.xml 是:

这里是 tablepersubclass Hierarchy 配置文件:

<hibernate-mapping package = "com.javatpoint.mypackage">
    <class name = "Employee" table = "Employee">
        <id name = "id" column = "eid">
        <generator class = "increment"></generator>
        </id>
        <property name = "name"  column = "name"></property>

        <joined-subclass name = "Regular_Employee" table = "RegEmployee">
            <key column = "eid"></key>
            <property name = "salary" column = "salary"></property>
            <property name = bonus column = "bonus"> </property>
        </joined-subclass>

        <joined-subclass name = "Contract_Emloyee"  table = "ConEmployee">
            <key column = "eid"> </key>
            <property name = "pay_per_hour" name = "pay_per_hour"></property>
            <property name = "contract_duration" name = "contract_duration"></property>
        </joined-subclass>

    </class>
</hibernate-mapping>

而配置文件hibernate.cfg.xml文件为:

<session-factory>
    <property name="hbm2ddl.auto">update</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect </property>
    <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
    <property name="connection.username">root</property>
    <property name="connection.password">mysql</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

    <mapping resource="employee.hbm.xml"/>
</session-factory>

Employee.java 是:

package com.javatpoint.mypackage;

public class Employee {

private int id;
private String name;

public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

}

Contract_Employee.java 是:

package com.javatpoint.mypackage;

public class Contract_Emloyee extends Employee{

private float pay_per_hour;
private String contract_duration;

public float getPay_per_hour() {
    return pay_per_hour;
}
public void setPay_per_hour(float pay_per_hour) {
    this.pay_per_hour = pay_per_hour;
}
public String getContract_duration() {
    return contract_duration;
}
public void setContract_duration(String contract_duration) {
    this.contract_duration = contract_duration;
}

}

Regular_Employee.java 是:

package com.javatpoint.mypackage;

public class Regular_Employee extends Employee{

private float salary;
private int bonus;

public float getSalary() {
    return salary;
}
public void setSalary(float salary) {
    this.salary = salary;
}
public int getBonus() {
    return bonus;
}
public void setBonus(int bonus) {
    this.bonus = bonus;
}

}

【问题讨论】:

  • 这只是一个格式不正确的代码转储,并没有准确解释您遇到了什么问题、您尝试了什么以及您希望 Stack Overflow 用户提供什么指导。如果您对自己的问题进行更多思考,并编辑掉所有杂乱无章的内容,您可能会得到更好的答案。
  • 使用具有语法高亮功能的体面代码 IDE/编辑器将帮助您检测此类简单的语法错误。

标签: java hibernate


【解决方案1】:

您的 employee.hbm.xml 是无效的 xml。

<property name= bonus column="bonus"></property>

改成这样:

<property name="bonus" column="bonus"></property>

【讨论】:

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