问题描述
selectb,tfromN_mobile_brandasb,N_mobile_tastwheret.brand_id=b.brand_idorderbyt.upd_dtdesc报错是java.lang.ClassCastException:[Ljava.lang.Object;atcom.mobile.struts.action.IndexAction.toBrand(IndexAction.java:391)atcom.mobile.struts.action.IndexAction.execute(IndexAction.java:71)atorg.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)atorg.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)atorg.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)atorg.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:689)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:802)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)atorg.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)atorg.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)atorg.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)atorg.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)atjava.lang.Thread.run(Thread.java:595)
解决方案
解决方案二:
有对hql查询明白的可以加我qq852154346真的很着急
解决方案三:
你要不明白就直接用sql写得了,N_mobile_brand是类名吗?一般来说hql表连接t.brand_id=b.brand_id也不这么写,一言难尽...
解决方案四:
表在程序中是否有隐射出实体!如果有应该是操作实体而不是直接操作表!
解决方案五:
最好是把你的代码贴出来,因为你光写一个sql语句,还真分析不出来什么错误。再者。selectb,tfromN_mobile_brandasb,N_mobile_tastwheret.brand_id=b.brand_idorderbyt.upd_dtdescselectb,t:这个b是什么啊?t又是什么啊?这后面你跟的是表面的重命名。没见过这样查询的,要么你加selectb.brand_id,t.brand_id之类的对象的属性。不然这个sql语句就算你倒数据库直接执行,也不会成功的。
解决方案六:
又是hibernate。。。。。
解决方案七:
selectb,tfromN_mobile_brandasb,N_mobile_tastwheret.brand_id=b.brand_idorderbyt.upd_dtdesc报错是java.lang.ClassCastException:[Ljava.lang.Object;这个异常是说明你的类转换异常。说明你查询来的结果是N_mobile_brandb,N_mobile_tt这两张表的结合c,你将你查询出来的结果用了什么接收?
解决方案八:
你是用的hibernate,首先做好表和表之间的映射吧学好映射,你这问题就很容易解决
解决方案九:
用hibernatecriteria来写吧。。。
解决方案十:
从异常看,不是hql的问题,而是类型转换的问题。也就是你把一个数组对象强行转成某个对象类型时出异常了。你的hql查询后会返回一个数组。
解决方案十一:
ClassCastException是类型转换异常啊,应该不是sql的问题。selectb,tfromN_mobile_brandasb,N_mobile_tastwheret.brand_id=b.brand_idorderbyt.upd_dtdesc这句代码直接用数据库执行一遍,如果不报错的话证明不是sql的问题,再检查其他的代码。
解决方案十二:
接上数组里的第一个对象是N_mobile_brand类型的,第二个对象则是N_mobile_t类型的。
解决方案十三:
该回复于2011-02-17 16:26:32被版主删除