Ответ 1
<property name="DPart1" not-null="true"/>
должен работать...
У меня есть класс, который выглядит следующим образом:
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 не нравится моя капитализация. Как это исправить?
<property name="DPart1" not-null="true"/>
должен работать...
для свойства, называемого "dPart1", спящий режим будет использовать геттер с именем "getDpart1", а не "getDPart1", IIRC
Не можете ли вы просто получить доступ к нему, как к полю?
доступ = "поле"
Я получил решение
Сделайте dPart1 в dpart1 и снова измените геттер и сеттер.
Теперь он работает для меня.
Не забудьте также изменить xml.
private String rptausu;
public String getRptausu() {
return rptausu;
}
public void setRptausu(String rpta) {
rptausu = rpta;
}
отображение:
<property name="prtausu" />
работает правильно
Из того, что я видел, Hibernate (по крайней мере, версия 3.2.4) будет ожидать, что у такого свойства, как dPart, будет getter с именем getdPart: d останется в нижнем регистре. Посмотрите также на ответ dfa - я предполагаю, что другие версии могут ожидать getDpart.
Устроитель и получатель должны выглядеть так:
getdPart1()
setdPart1(....)
То, как создатели и геттеры генерируются, если они генерируются через IDE, например, затмение.
Для свойства private Integer carId;
сеттеры и геттеры должны быть
getCarId() setCarId (Integer carId)
Соглашение об именовании свойства имеет значение в моем собственном случае. Я изначально использовал
private String newimsi, getNewImsi();
выше не удалось с тем же исключением
propertynotfoundexception
до тех пор, пока я не поправлю ниже, прежде чем он сработает
getNewimsi();