2012-08-10 35 views
1
questions=dao.getNamedQueryResultList("getUnansweredQuestionsByCategory", new Object[]{strUser}); 



    for(Question selectedResumes:questions) { 
      //do something with the SelectedResumes object 
     System.out.println("Unanswered::"+selectedResumes.getQuestion()); 
    } 

================================== ==================================== -java.lang.ClassCastException:[Ljava.lang.Object;無法投射到com.sx.mcqs.model

以下錯誤來了:

java.lang.ClassCastException:[Ljava.lang.Object;不能轉換爲 com.sx.mcqs.model.Question在 com.sx.mcqs.service.QuestionService.findRelatedQuestionsGame(QuestionService.java:142) 在 com.sx.mcqs.service.QuestionService $$ FastClassByCGLIB $ $ cd78275c.invoke() 在net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)在 org.springframework.aop.framework.Cglib2AopProxy $ CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 在 org.springframework.aop.framework.Cglib2AopProxy $ DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) 在 com.sx.mcqs。 service.QuestionService $$ EnhancerByCGLIB $$ f6d3276_2.findRelatedQuestionsGame() 在 com.sx.mcqs.controller.QuestionController.selectcategory(QuestionController.java:182) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)在 太陽.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java .lang.reflect.Method.invoke(Method.java:597)在 org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) 在 org.springframework.web.method.support。 InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 在 org.springframework.web.servlet.mvc。 method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) 在 有機.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 在 org.springframework.web.servlet.FrameworkServlet .doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain。的java:210) 在 org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:58) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 在 有機.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在com.sx.mcqs.filter.GzipFilter。 doFilter(GzipFilter.java:86)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFi lterChain.doFilter(ApplicationFilterChain.java:210) 在 org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:147) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter。的java:76) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 COM .sx.mcqs.filter.UserSessionFilter.doFilter(UserSessionFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:243) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 在 org.apache.catalina.core .StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina.connector .CoyoteAdapter.service(CoyoteAdapter.java:407) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 在 org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java :565) 在 org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:309) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:908) 在java.lang.Thread.run(Thread.java:619)

回答

3

你的代碼上述假定命名查詢返回問題列表,但它返回一個對象數組。要返回的問題清單,查詢應該像

select question from Question question ... 

但查詢可能看起來像

select question.foo, question.bar, ... 

在沒有看到執行的查詢,很難給出更詳細的解答。

+0

@NamedQuery(name =「getUnansweredQuestionsByCategory」,query =「SELECT q.id From Question q left outer join q.internalUserAnswers ua join q.internalQuestionCategories qc where qc.category.id =?」) – 2012-08-14 04:37:54

+0

抱歉,延遲。我正在度假。優秀的評論證實了我的答案。您正在選擇問題的ID。不是問題。查詢應該是「從問題q中選擇q ...」。 – 2012-09-02 12:02:18