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();