Hibernate – PropertyNotFoundException:无法找到getter

我有一个类似于以下的类:

public class MyClass { private String dPart1; public String getDPart1() { return dPart1; } public void setDPart1(String dPart1) { this.dPart1 = dPart1; } } 

我的hibernate映射文件映射属性如下:

  

我收到以下错误:

 org.hibernate.PropertyNotFoundException: Could not find a getter for dPart1 in class com.mypackage.MyClass at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282) at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:275) at org.hibernate.mapping.Property.getGetter(Property.java:272) at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:247) at org.hibernate.tuple.entity.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:125) at org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer.java:55) at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:56) at org.hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:302) at org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:434) at 

似乎hibernate不喜欢我的大写。 我该怎么解决这个问题?

  

应该管用…

对于名为“dPart1”的属性,hibernate将尝试名为“getDpart1”的getter而不是“getDPart1”IIRC

难道你不能像场一样访问它吗?

存取=“场”

我得到了解决方案

请将dPart1设为dpart1并再次更改getter和setter ..

它现在对我有用。

记得也要更改xml。

 private String rptausu; public String getRptausu() { return rptausu; } public void setRptausu(String rpta) { rptausu = rpta; } 

制图:

   

工作正常

从我所看到的,Hibernate(至少版本3.2.4)将期望像dPart这样的属性有一个名为getdPart的getter:d保持小写。 看看dfa的答案 – 我猜其他版本可能会期待getDpart。

setter和getter应该是这样的

 getdPart1() setdPart1(....) 

这就是如果通过像eclipse这样的IDE生成的生成器和getter的生成方式。

对于属性私有整数carId;

应该是安装者和吸气剂

getCarId()setCarId(Integer carId)

在我最初使用的情况下,属性的命名约定很重要

 private String newimsi, getNewImsi(); 

以上失败也有同样的例外

propertynotfoundexception

直到我在它工作之前纠正到下面

 getNewimsi();