2009-05-28 54 views
10

一个getter我有一个类,如下所示:休眠 - PropertyNotFoundException:找不到

public class MyClass { 
    private String dPart1; 

    public String getDPart1() { 
     return dPart1; 
    } 

    public void setDPart1(String dPart1) { 
     this.dPart1 = dPart1; 
    } 
} 

我的Hibernate映射文件映射属性,如下所示:

<property name="dPart1" not-null="true"/> 

我得到的以下错误:

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.<init>(AbstractEntityTuplizer.java:125) 
     at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55) 
     at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56) 
     at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302) 
     at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434) 
     at 

看起来,hibernate不喜欢我的大写。我应该如何解决这个问题?

回答

16
<property name="DPart1" not-null="true"/> 

应该工作...

+0

我也面临这个问题,上述解决方案对我来说工作正常。 现在我想知道的是它是setter getter方法的java规范,还是它是针对hibernate的jboss特定实现? 谢谢您的回答:) – 2009-11-15 06:44:08

+0

您能否提供关于您解决方案的解释? – Marco 2016-09-13 15:14:26

4

一个名为 “dPart1” 属性Hibernate会尝试一个名为 “getDpart1” 而不是 “getDPart1” IIRC

3

你就不能访问它的getter像田野?

访问= “字段”

0

我得到了解决

请dPart1到dpart1和更改getter和setter方法再次..

它现在为我工作。

还记得更改xml。

0
private String rptausu; 

public String getRptausu() { 
    return rptausu; 
} 

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

映射:

 <property name="prtausu" /> 

工作正常

0

从我所看到的,休眠(至少版本3.2.4)将期待像一个的DPart属性,有一个名为getdPart吸气:d保持小写。看看dfa的答案 - 我猜测其他版本可能会期望getDpart。

0

的二传手&吸气应该是这样的

getdPart1() 
setdPart1(....) 

那如果通过像Eclipse的IDE产生& getter方法是如何制定者产生。

0

For a property private Integer carId;

的getter和setter方法应该是

getCarId() setCarId(整数carId)

0

属性的命名约定在我最初使用

private String newimsi, getNewImsi(); 

了我自己来说重要的例子以上失败,同样例外

propertynotfoundexception

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

getNewimsi();