org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: XXX的解决方案
来源:互联网 发布:mac windows 双系统 编辑:程序博客网 时间:2024/06/11 10:06
出现这个异常,大多是因为我们在HQL和SQL语句的使用上造成混淆。因为Hibernate使用的是hql语法,而sql语法和它是有区别的。
例如我在用SSH框架写图书管理系统的时候就出现了如下的报错:
org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: readerId of: com.cc.library.domain.BorrowInfo [from com.cc.library.domain.BorrowInfo b where b.readerId=?]; nested exception is org.hibernate.QueryException: could not resolve property: readerId of: com.cc.library.domain.BorrowInfo [from com.cc.library.domain.BorrowInfo b where b.readerId=?] at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:642) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424) at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:917) at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:913) at com.cc.library.dao.impl.BorrowDaoImpl.getBorrowInfoByReader(BorrowDaoImpl.java:117) at com.cc.library.service.impl.BorrowServiceImpl.addBorrow(BorrowServiceImpl.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy19.addBorrow(Unknown Source) at com.cc.library.action.BorrowManageAction.borrowBook(BorrowManageAction.java:213) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:619)
我的查询语句是这样写的:
表中的字段如下:
could not resolve property(无法解析属性) 顾名思义在写hql语句的时候,属性写错了
原因HQL是根据映射文件和所对应的类来查询的,所以查询的时候映射文件映射的属性名要跟类中的属性名一致。
我的问题出现的原因,readerId不是BorrowInfo类下的属性,而应该是reader
如果HQL语句应该改为:
执行发现没有报错了,问题解决。
总结一下这种错误的排查方式:
1.hibernate.config.xml中添加的映射文件是否正确
2.映射文件中的类是否正确指定。
3.映射文件映射的属性名是否跟类中的属性名一致。
4.映射文件映射的属性类型是否跟类中的属性一致。
5.映射文件映射到属性在类里是否有GET,SET方法。
6.如果类中的属性名有跟数据库关键字相同的(比如说desc),那么映射文件中的对应属性的列名要手动指定成别的名字。
7.还有就是以上我的这种情况也有可能造成这种错误。
1 0
- org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: XXX的解决方案
- 错误提示:org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: *
- org.springframework.orm.hibernate3.HibernateQueryException: XXX is not mapped解决方案
- org.springframework.orm.hibernate3.HibernateQueryException: XXX is not mapped
- org.springframework.orm.hibernate3.HibernateQueryException: teacherscore is not mapped
- 十二、org.springframework.orm.hibernate3.HibernateQueryException: Book is not mapped
- org.springframework.orm.hibernate3.HibernateQueryException:表名 is not mapped
- org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException:
- org.springframework.orm.hibernate3.HibernateQueryException 问题
- SSH org.springframework.orm.hibernate3.HibernateQueryException
- 异常记录:org.springframework.orm.hibernate3.HibernateQueryException:PDIC_USER is not mapped [from PDIC_USER p where 1=1 ]; nested ex
- org.springframework.orm.hibernate3.LocalSessionFactoryBean not found
- org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: * near line 1, column
- org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 29 near line 1, column
- org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: xx near line 1, colum
- org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: where near line 1, col
- org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 29 near line 1, column
- org.springframework.orm.hibernate3
- 《编程之法》:荷兰国旗
- Centos 7 安装 Xen
- 判断一个数是否为素数(反证法)
- WebMagic写的网络爬虫
- [ZJOI2815]灾难 建树+动态LCA+树上dp
- org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: XXX的解决方案
- 什么是硬件加速?GPU
- 常见的排序算法
- [DP] BZOJ 3810 [Coci2015]Stanovi
- 内部类与静态内部类的实例化
- Java排序算法---->桶排序算法
- 计蒜客——爬楼梯
- 51nod 1109 01 组成N倍数 bfs+同余剪枝
- iOS 离屏渲染的研究