public static void main(String[] args) {
CateService bh = (CateService) BeanHome.getBean("CateService");
System.out.println(bh); List<TbWcProvince> list = bh.selectProvince(); for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName());
List<TbWcCity> listcity = bh.selectCity(list.get(i).getProvince());
for (int j = 0; j < listcity.size(); j++) {
System.out.println(listcity.get(j).getName());
}
} }
com.covics.business.CateService@b533b8
Hibernate: select tbwcprovin0_.province as province0_, tbwcprovin0_.name as name0_, tbwcprovin0_.isEnable as isEnable0_, tbwcprovin0_.memo as memo0_, tbwcprovin0_.createdDate as createdD5_0_, tbwcprovin0_.lastModifiedDate as lastModi6_0_ from Tb_WC_Mob_Province tbwcprovin0_
广东
Hibernate: select tbwccity0_.name as col_0_0_ from Tb_WC_Mob_City tbwccity0_, Tb_WC_Mob_Province tbwcprovin1_ where tbwccity0_.province=tbwcprovin1_.province and tbwcprovin1_.province=?
Exception in thread "main" java.lang.ClassCastException: java.lang.String
at cn.test.Test.main(Test.java:30)
我可以直接拿到listcity的值    但是listcity.get(j).getName()拿到话就会报上面那个异常  哪位大哥能告诉小弟原因

解决方案 »

  1.   

    Test.java的30行是哪一行?
    TbWcCity的映射可以看看吗?
      

  2.   

    是一个  }  符号
    表映射了   我直接拿listCity可以把值全部获取到
      

  3.   

    CateService里获取列表的hql用了select,查出的结果集list里的元素没有映射成对应的java对象,
    debug一下,观察list的元素就看出来了
      

  4.   

     List <TbWcCity> listcity = bh.selectCity(list.get(i).getProvince()); 
    这句改成:
      List<TbWcCity> listcity = new ArrayList<TbWcCity>();
      listcity.add(bh.selectCity(list.get(i).getProvince()));
    不不知道可以不?
      

  5.   

    很明显是hql查询了部分列,又没有根据列构造pojo
      

  6.   


    public static void main(String[] args) { 
    CateService bh = (CateService) BeanHome.getBean("CateService"); 
    System.out.println(bh);  List <TbWcProvince> list = bh.selectProvince();  for (int i = 0; i < list.size(); i++) { 
    System.out.println(list.get(i).getName()); 
    List <TbWcCity> listcity = bh.selectCity(list.get(i).getProvince()); 
    for (int j = 0; j < listcity.size(); j++) { 
    System.out.println("listcity.get("+j+")="listcity.get(j));
    System.out.println(listcity.get(j).getName()); 

    }  } 
    你每一步都打印一下看具体是那一步出错。然后再贴出出错的结果吧