***大家看看,怎么会出这个问题,List的数据不能强制转换,报错误!***

zslearning 2007-04-17 05:18:07
其中用到MyEclipse的Hibernate框架

public class XiangmuDAO extends HibernateDaoSupport{
......................
....................

public List findByStr(String queryString, Object[] value) {
log.debug("finding Xiangmu by String sql: ");
try {

return getHibernateTemplate().find(queryString, value);//是不是这句有问题
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
}

在另一个程序中调用:

String queryString = "from Xiangmu m,User u where m.type=? and m.department=u.department and u.department=?";
String[] m_param =new String[2];
m_param[0] = "123";
m_param[1] = m_department;

List spList = xmdao.findByStr(queryString, m_param);//得到项目列表
Xiangmu xm = (Xiangmu)spList.get(0);//****注意:此处提示出错?为什么

这是浏览器的提示:javax.servlet.ServletException: [Ljava.lang.Object; cannot be cast to com.zs.db.Xiangmu

请指点?
怎样更正这个错误!!!!!
...全文
273 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zslearning 2007-04-18
  • 打赏
  • 举报
回复
Xiangmu 这个对象和你 queryString = "from Xiangmu m,User u where m.type=? and m.department=u.department and u.department=?"这个sql查出来的对象不一致


确实是这里有问题,谢谢了
zslearning 2007-04-18
  • 打赏
  • 举报
回复
异常信息如下:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: [Ljava.lang.Object; cannot be cast to com.zs.db.Xiangmu
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.zs.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)


root cause

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.zs.db.Xiangmu
com.zs.struts.action.GetXiangmuAction.execute(GetXiangmuAction.java:74)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.zs.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.

zuguanqun 2007-04-18
  • 打赏
  • 举报
回复
Xiangmu 这个对象和你 queryString = "from Xiangmu m,User u where m.type=? and m.department=u.department and u.department=?"这个sql查出来的对象不一致
zslearning 2007-04-18
  • 打赏
  • 举报
回复
List spList = xmdao.findByName("czj");//这样就好使,
但下面这面就不行
String queryString = "from Xiangmu m,User u where m.type=? and m.department=u.department and u.department=?";
String[] m_param =new String[2];
m_param[0] = "123";
m_param[1] = m_department;

List spList = xmdao.findByStr(queryString, m_param);//

而且
Iterator it= spList.iterator();
while(it.hasNext())
{
Xiangmu xm= (Xiangmu)it.next();//这样的话也强制转换不了
}


出这种问题的可能性?可能哪里有错误!!
hllwuxin 2007-04-17
  • 打赏
  • 举报
回复
spList.get(0);//在哪,,我怎么找不到,

最好给个完整点的,这样怎么找啊
li_d_s 2007-04-17
  • 打赏
  • 举报
回复
queryString的值是啥?
xiaoxiao0714 2007-04-17
  • 打赏
  • 举报
回复
是不是持久层框架里返回的变量格式不是“Xiangmu”?

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧