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 

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

доступ = "поле"

Ответ 4

Я получил решение

Сделайте dPart1 в dpart1 и снова измените геттер и сеттер.

Теперь он работает для меня.

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

Ответ 5

private String rptausu;

public String getRptausu() {
    return rptausu;
}

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

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

        <property name="prtausu" />

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

Ответ 6

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

Ответ 7

Устроитель и получатель должны выглядеть так:

getdPart1()
setdPart1(....)

То, как создатели и геттеры генерируются, если они генерируются через IDE, например, затмение.

Ответ 8

Для свойства private Integer carId;

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

getCarId() setCarId (Integer carId)

Ответ 9

Соглашение об именовании свойства имеет значение в моем собственном случае. Я изначально использовал

private String newimsi, getNewImsi();

выше не удалось с тем же исключением

propertynotfoundexception

до тех пор, пока я не поправлю ниже, прежде чем он сработает

getNewimsi();