" org.hibernate.PropertyNotFoundException:Could not find a getter for ..

 org.hibernate.PropertyNotFoundException: Could not find a getterfor ...


我想碰到这类问题你和我的思路肯定是一样的

肯定以为是getter方法写的有问题了吧,

其实真理往往产生的一霎,悲剧的是下一刻推翻了自己的真理往往是自己。

我的字段是:private boolean isDelete;

然后Eclipse帮我生成的是  isDelete(){return isDelete;}

猛一看好像没啥错。然后就想Eclipse生成的肯定是对的,自己是不是吧JavaBean的boolean类型记错了。

折腾了好几下、总是不敢相信Eclipse生成的是错的。最后改了hibernate.hbm.xml配置文件中的属性存取策略、把存取策略改为:access="field"

然后将就着没有了异常。

后来仔细想了下、把存取策略改为field,后是通过反射存取字段的。而默认的是通过构造getXXX()存取的,那么必然是getter有问题,

而为什么有一个其他的字段也是boolean read就可以正常呢。问题必然是getter


好吧,接下来相信自己的直觉,仔细看了看getter,

如果我们写JavaBean,有个boolean isDelete字段、我们应该按照规则写成  isIsDelete(),然而Eclipse生成的是isDelete必然的少了一个is,

所以这就是问题的根源了。


总结:

1,在使用hibernate的时候如果出现这类问题,

应该注意的是:

  1)getter()方法写错了,没有按照javaBean的规则写.

                       (1):注意自己写JavaBean的时候存取方法,一定要按照规则来,

                        (2):当然现在很多都是,Eclipse自动生成,那么工具也有失误的时候,

                                    所以为了防止工具失误我们应该注意:

                                   ,属性是boolean is开头或者其他 类型以t 开头时要注意编辑器生成的getter方法。

                                   boolean is开头的省略掉一个is

                                   其他以t开头的如 tCourse会自动生成  getCource少一个t。

  2)*.hmb.xml中的属性名和pojo中的是否一致.注意:属性名是否多了空格.




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值