Hibernate – PropertyNotFoundException:无法找到getter
我有一个类似于以下的类:
public class MyClass { private String dPart1; public String getDPart1() { return dPart1; } public void setDPart1(String dPart1) { this.dPart1 = dPart1; } }
我的hibernate映射文件映射属性如下:
我收到以下错误:
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.(AbstractEntityTuplizer.java:125) at org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer.java:55) at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:56) at org.hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:302) at org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:434) at
似乎hibernate不喜欢我的大写。 我该怎么解决这个问题?
应该管用…
对于名为“dPart1”的属性,hibernate将尝试名为“getDpart1”的getter而不是“getDPart1”IIRC
难道你不能像场一样访问它吗?
存取=“场”
我得到了解决方案
请将dPart1设为dpart1并再次更改getter和setter ..
它现在对我有用。
记得也要更改xml。
private String rptausu; public String getRptausu() { return rptausu; } public void setRptausu(String rpta) { rptausu = rpta; }
制图:
工作正常
从我所看到的,Hibernate(至少版本3.2.4)将期望像dPart这样的属性有一个名为getdPart的getter:d保持小写。 看看dfa的答案 – 我猜其他版本可能会期待getDpart。
setter和getter应该是这样的
getdPart1() setdPart1(....)
这就是如果通过像eclipse这样的IDE生成的生成器和getter的生成方式。
对于属性私有整数carId;
应该是安装者和吸气剂
getCarId()setCarId(Integer carId)
在我最初使用的情况下,属性的命名约定很重要
private String newimsi, getNewImsi();
以上失败也有同样的例外
propertynotfoundexception
直到我在它工作之前纠正到下面
getNewimsi();