Hibernate &引用;找不到“的getter”;错误

Hibernate &引用;找不到“的getter”;错误,hibernate,Hibernate,可能重复: 我试图运行代码时出错。你们能帮忙吗。我已附上我的地图文件。这里的问题是,我得到下面的错误。“org.hibernate.PropertyNotFoundException:在bean.Employee类中找不到eployeedetail的getter” 这是我的员工班 package bean; import bean.EployeeDetails; public class Employee { int EmpId;

可能重复:

我试图运行代码时出错。你们能帮忙吗。我已附上我的地图文件。这里的问题是,我得到下面的错误。“org.hibernate.PropertyNotFoundException:在bean.Employee类中找不到eployeedetail的getter”

这是我的员工班

   package bean;

   import bean.EployeeDetails;

   public class Employee {


    int             EmpId;
    String          name;
    String          phone;
    EployeeDetails          Edetails;

   public EployeeDetails getEdetails() {
        return Edetails;
    }
    public void setEdetails(EployeeDetails eDetails) {
        Edetails = eDetails;
    }
还有其他的能手和二传手

EployeeDetails.hbm.xml

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

       <hibernate-mapping>
        <class name="bean.EployeeDetails" table="eployeedetail">
            <id name="EmpId">
                <column name="employee_id"/>
                <generator class="foreign" >
                <param name="property">eployee</param>
                </generator>
            </id>
            <one-to-one name="eployee" class="bean.Employee" constrained="true"></one-to-one>
            <property name="Address" column="ADDRESS"/>
        </class>
       </hibernate-mapping>

埃普洛耶
Employee.hbm.xml

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

       <hibernate-mapping>
        <class name="bean.Employee" table="eployee">
            <id name="EmpId" column="employee_id">
                <generator class="native" />
            </id>
            <one-to-one name="eployeedetail" class="bean.EployeeDetails"/>
            <property name="name" column="NAME"/>
            <property name="phone" column="PHONE"/>
        </class>
       </hibernate-mapping>

 EployeeDetails   Edetails;
这个


问题出在
Employee.hbm.xml
中。无论何时指定一对一标记,都需要指定两个基本属性:

  • 名称,表示属性的名称。在您的情况下,它应该是
    Edetails
    &而不是
    ePloyeDetail
    这就是您收到异常的原因。
  • 表示与该类一对一关联的类名。在您的情况下,它应该是
    EployeeDetails

  • 更改
    Employee.hbm.xml
    ,将一对一标记属性name更改为
    Edetails
    &您的问题将得到解决。

    谢谢Rajesh,但这对EployeeDetails=新EployeeDetails()有帮助;public-EployeeDetails getEdetails(){return-edetails;}public-void-setEdetails(eployedetails-edetails){this.edetails=edetails;}您可以帮助检查hbm中用于EployeeDetails的属性名称是否应该与您的对象名称相同。当然,区分大小写是Rajesh,它是相同的。我已经附上了我的映射文件作为@RASIs的回复。你的对象名是eployeedetail of EployeeDetailsYes Rajesh,现在我得到了我的错误。正如RAS所提到的,它位于Employee.hbm.xml中。非常感谢您的帮助``您一直把“employee”拼写错。是的,我错把我的表创建为eployee而不是employee。所以我保留了它。编辑你的帖子并用正确的格式粘贴代码。在注释中读取映射文件是很可怕的。旁注:看看Lombok,就不需要手动编写getter和setter了。错误原因的描述是正确的。但是,一对一没有列。一对一,如果不是多对一。它没有外键。它基于链接的主键,或者使用属性ref,基于链接的外键。@StefanSteinegger,是的,你是对的。谢谢你指出。我已经更正了答案。@StefanSteinegger谢谢你的帮助。这解决了我的问题。非常感谢各位。@Sri,如果这个答案对你们有帮助,你们应该接受它。
     EployeeDetails    Edetails = new EployeeDetails();