2009-05-28 3 views
10

У меня есть класс, который выглядит следующим образом:Hibernate - PropertyNotFoundException: Не удалось найти поглотитель для

public class MyClass { 
    private String dPart1; 

    public String getDPart1() { 
     return dPart1; 
    } 

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

Мой файл сопоставления спящий режим отображает свойства следующим образом:

<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 

Похоже, что спящий режим не любит мою капитализацию. Как мне это исправить?

ответ

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

должен работать ...

+0

У меня также возникла проблема, и вышеупомянутые решения отлично подходят для меня. Теперь, что я хотел бы знать, это спецификация java для методов setter getter или это конкретная реализация jboss для спящего режима? Спасибо за ваш ответ :) –

+0

Не могли бы вы предоставить объяснение о вашем решении? – Marco

4

имущества под названием "dPart1" а спящий режим попытается поглотитель под названием "getDpart1" не "getDPart1" IIRC

+0

важна капитализация. то есть – emdog4

+0

что делать, если требуется getDPart1? – 2017-06-28 16:07:44

3

Разве вы не можете просто получить доступ к нему как поле?

доступа «поле»

0

= Я получил раствора

Пожалуйста, dPart1 к dpart1 и изменить геттер и сеттер снова ..

Это работает для меня.

Не забудьте также изменить xml.

0
private String rptausu; 

public String getRptausu() { 
    return rptausu; 
} 

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

отображение:

 <property name="prtausu" /> 

работает правильно

0

Из того, что я видел, Hibernate (по крайней мере версия 3.2.4) будет ожидать свойство, как dPart иметь поглотитель имени getdPart : d остается в нижнем регистре. Посмотрите также на ответ dfa - я предполагаю, что другие версии могут ожидать getDpart.

0

сеттер & поглотитель должен выглядеть следующим образом

getdPart1() 
setdPart1(....) 

Вот как сеттеры & добытчиками генерируются, если генерируется через IDE как Eclipse.

0

Для недвижимости частный Integer carId;

сеттеры и геттеров должны быть

getCarId() setCarId (Integer carId)

0

Соглашение об именах собственности имеет значение пример в моем случае я изначально используется

private String newimsi, getNewImsi(); 

в выше, с тем же исключением

propertynotfoundexception

до тех пор, пока я не исправился до того, как он сработал

getNewimsi(); 
Смежные вопросы