hibernate常见出错

hibernate常见出错

ID:40555544

大小:16.00 KB

页数:2页

时间:2019-08-04

hibernate常见出错_第1页
hibernate常见出错_第2页
资源描述:

《hibernate常见出错》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用过hibernate的同事一定对PropertyNotFoundException异常非常熟悉,产生原因也很好找,通常的错误原因有:1.hibernate配制文件错误,属性里有空格等。2.是get方法和属性不对应。但是今天在开发过程中发现配制文件和get方法都没有错误,但是还是报PropertyNotFoundException异常。PO抽像类如下:privateStringgAccountId;/***getGAccountId描述:**@return返回gAccountId。*/publicStringgetGAccountId(){ret

2、urngAccountId;}/***setGAccountId描述:**@paramaccountId要设置的gAccountId。*/publicvoidsetGAccountId(StringaccountId){gAccountId=accountId;}hib.xml如下:

3、ACCOUNT_ID"type="java.lang.String"/>**********所以我一直认识配制的没有错误,但是一到buildSessionFactory时就报异常。想了很久发现get方法最可能出错,于是把getGAccountId()改成getgAccountId();显然这是不符合javabean的命名规范的,但是问题竟然解决了。反编译了hibbernate代码发现hibbernate是这么处理的,首先利用配制文件的package和name找到要映射到的类,按上面的配制文件就是gmt.boss.interfaces.custome

4、r.po.TAccount,然后利用反射取出这个类的信息,取的时候利用了缓存的机制,不是每次都反射一次。然后用这个类的信息中的get,set方法和配制文件中进行匹配。以上面的getGAccountId()为例,先去掉这个方法中的前三位取余下的部分为flag1=GAccountId,然后调用jdk中的Introspector.decapitalize把这个字符串dropCase得到flag2,然而Introspector.decapitalizedropCase的过程,如果这个字符串开头为一个以上的大写字母,那就不做任何操作反回原串,,所以flag2

5、=GAccountId。匹配的过程为只要flag1与flag2中有一个和配制文件中的propertyname一致就为正确的映射。GAccountId显然和无法匹配,抛出PropertyNotFoundException也就很自然了。最后把配制文件改成抽像类改成pri

6、vateStringgaccountId;/***getGAccountId描述:**@return返回gAccountId。*/publicStringgetGaccountId(){returngaccountId;}问题OK了。女程序员征婚:SELECT*FROM男人们WHERE(未婚=trueor离异=true)and同性恋=falseand穷光蛋=falseand有房=trueand有车=trueand条件in(‘细心’,'温柔’,'体贴’,'贤惠’,'会做家务,会做饭,会逛街买东西,会浪漫,活泼,,帅气,绅士,大度,气质,智慧’,'最好

7、还能生生生孩子’)and年龄between(26,40)orderby存款descLucene全文搜索引擎的应用本科生毕业设计(论文).pdf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。