2009-05-28 32 views
10

Mam klasa, która wygląda następująco:Hibernate - PropertyNotFoundException: Nie można znaleźć getter dla

public class MyClass { 
    private String dPart1; 

    public String getDPart1() { 
     return dPart1; 
    } 

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

Mój plik mapowania Hibernate odwzorowuje własności w następujący sposób:

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

otrzymuję następujący błąd:

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 

Wygląda na to, że hibernacja nie podoba mi się wielkość liter. Jak mam to naprawić?

Odpowiedz

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

powinno działać ...

+0

Mam również do czynienia z problemem, a powyższe rozwiązania działają dobrze dla mnie. Teraz chciałbym wiedzieć, czy jest to specyfikacja java dla metod pobierających settera, czy też jest to specyficzna implementacja jboss dla hibernacji? Dziękuję za odpowiedź :) –

+0

Czy możesz podać wyjaśnienie swojego rozwiązania? – Marco

4

dla nieruchomości o nazwie "dPart1" a hibernacji postara getter nazwie "getDpart1" nie "getDPart1" IIRC

+0

wielkie znaczenie ma wielkość liter. tj. – emdog4

+0

co jeśli wymagany jest getDPart1? –

3

nie można po prostu do niego dostęp jak pole?

dostęp = "field"

0

mam roztworowi

Upewnij dPart1 do dpart1 i zmienić getter i setter ponownie ..

To działa dla mnie teraz.

Pamiętaj, aby zmienić także xml.

0
private String rptausu; 

public String getRptausu() { 
    return rptausu; 
} 

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

mapowania:

 <property name="prtausu" /> 

działa poprawnie

0

Z tego co widziałem, Hibernate (przynajmniej wersja 3.2.4) będzie oczekiwać właściwość jak dPart mieć getter nazwie getdPart : d pozostaje małe. Przyjrzyj się także odpowiedzi dfa - domyślam się, że inne wersje mogą zamiast tego oczekiwać getDpart.

0

Setter & getter powinien wyglądać ten

getdPart1() 
setdPart1(....) 

to jak setery & getters są generowane, jeśli generowane przez IDE jak Eclipse.

0

Dla nieruchomości private Integer carId;

ustawiające i pozyskiwaniu powinny być

getCarId() setCarId (Integer carId)

0

Konwencja nazewnictwa nieruchomości liczy przykład w moim przypadku ja początkowo używane

private String newimsi, getNewImsi(); 

się powyżej nie powiodło się z tym samym wyjątkiem:

propertynotfoundexception

do czasu skorygowania poniżej, zanim zadziałało

getNewimsi(); 
Powiązane problemy