您当前的位置: 首页 >  Java

梁同学与Android

暂无认证

  • 4浏览

    0关注

    618博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[Ljava.lang.Object; cannot be cast to com.gxuwz.check.entity.SysClasses

梁同学与Android 发布时间:2019-11-28 10:23:51 ,浏览量:4

今天在写ssh项目的时候遇到了这样一个问题,我在数据库通过连表查询A老师下的所有班级的时候,把查出来的所有内容(所有字段)放到List里面,代码如下:

/**

 * @title: queryClasses
 * @description: 查询教师下的所有班级
 * @param user
 */
@Override
public List queryClasses(String userid) {
	
	String hql = "from SysClasses c,SysTeacher t " + "where c.userId = t.userId and c.userId = ?";
	Session session = getSession();
	Query query = session.createQuery(hql);
	query.setString(0, userid);
	List  list = query.list();
	session.close();
	return list;
}

然后在前台用el表达式,即对象.属性的方法 ${list.className} 取值得时候总是显示不出来数据,而且还有报错,报错信息如下:(前提是我只想要className属性,只有SysClasses表中有而SysTeacher表中没有)

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.gxuwz.check.entity.SysClasses
	com.gxuwz.check.action.LoginAction.execute(LoginAction.java:69)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:498)
	com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
	com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
	com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

报错的意思是:Object类型不能够转换成这个实体类SysClasses类型。 之后就开始研究打断点测试 先添加两行代码进行测试,代码如下:

@Override public List queryClasses(String userid) {

	String hql = "from SysClasses c,SysTeacher t " + "where c.userId = t.userId and c.userId = ?";
	Session session = getSession();
	Query query = session.createQuery(hql);
	query.setString(0, userid);
	List  list = query.list();
	for(int i = 0;i            
关注
打赏
1660730345
查看更多评论
0.1150s