我有一个如下所示的课程:
public class MyClass {
private String dPart1;
public String getDPart1() {
return dPart1;
}
public void setDPart1(String dPart1) {
this.dPart1 = dPart1;
}
}
我的hibernate映射文件按如下方式映射属性:
<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不喜欢我的大小写。我该如何解决这个问题?
答案 0 :(得分:18)
<property name="DPart1" not-null="true"/>
应该有用......
答案 1 :(得分:6)
对于名为“dPart1”的属性,hibernate会尝试一个名为“getDpart1”而不是“getDPart1”的getter IIRC
答案 2 :(得分:3)
难道你不能像场一样访问它吗?
访问= “字段”
答案 3 :(得分:0)
我得到了解决方案
请将dPart1改为dpart1并再次更改getter和setter ..
现在正在为我工作。
请记住也要更改xml。
答案 4 :(得分:0)
private String rptausu;
public String getRptausu() {
return rptausu;
}
public void setRptausu(String rpta) {
rptausu = rpta;
}
映射:
<property name="prtausu" />
正常工作
答案 5 :(得分:0)
从我所看到的,Hibernate(至少版本3.2.4)将期望像dPart这样的属性有一个名为getdPart的getter:d保持小写。看看dfa的答案 - 我猜其他版本可能会期待getDpart。
答案 6 :(得分:0)
二传手&amp; getter应该看起来像这样
getdPart1()
setdPart1(....)
这就是定位者和如果通过像eclipse这样的IDE生成,则生成getter。
答案 7 :(得分:0)
对于一个财产 私人整数carId;
setter和getter应该是
getCarId() setCarId(Integer carId)
答案 8 :(得分:0)
属性的命名约定在我自己的情况下最初使用
private String newimsi, getNewImsi();
以上失败并出现同样的异常
propertynotfoundexception
直到我在工作之前纠正到以下
getNewimsi();
答案 9 :(得分:0)
最佳实践不是我们自己创建getter / setter,而是使用Eclipse快捷键(Alt + Shift + S)为bean / pojo中定义的变量创建getter / setter。
命名约定很重要。