2009-05-28 116 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();