select aa.accountId,a.userName,a.ispotency,a.registerData,aa.accountName,
aa.sex,aa.nickname,aa.birthday,aa.address,aa.chinamobile,aa.telephone,aa.email,aa.city
红色部分是不是应该改成a.accountName,不然可能转不过来啊

解决方案 »

  1.   

    用select a,aa from ....
    得到的是Object[2]{Account对象,AccountAttributelist对象}楼主这样,得到的应该也是Object[]
      

  2.   

    鼻血....
    先测试,输出allList.size(),看里面有没有值;
    如果是0,大部分可能是你SQL语句有问题,如果不为0,就是类型转换有问题;
    不过你要先测试下,程序是调出来,猜不出来滴~~
      

  3.   

    allList.size(),这个有值啊.select aa.accountId,a.userName,a.ispotency,a.registerData,aa.accountName
    aa.sex,aa.nickname,aa.birthday,aa.address,aa.chinamobile,aa.telephone,aa.email,aa.city 
    红色部分是不是应该改成a.accountName,不然可能转不过来啊我要查的就是两个表里不全的数据.合成一个BEAN好操作啊...
    用select a,aa from .... 
    得到的是Object[2]{Account对象,AccountAttributelist对象} 楼主这样,得到的应该也是Object[]
    这个兄弟你应该知道怎么改吧..你说的好象有道理哦..
      

  4.   

    这个就要做实验喽~~AccountForm accountForm = new AccountForm();
    List <AccountForm> allList = (List)allAccount();
    accountForm=allList.get(0);  
    accountForm.getAccountId();你这么写试试看~~
      

  5.   

    把强转都去掉~
    你用泛型类,不需要强转了!~
    List <AccountForm> allList = allAccount();
    accountForm=allList.get(0);
      

  6.   

    把强转都去掉~ 
    你用泛型类,不需要强转了!~ 
    List <AccountForm> allList = allAccount(); 
    accountForm=allList.get(0); 
    试了.不行哦```哎```
      

  7.   

    比如你用select aa.accountId,a.userName from ...
    得到就是Object[2]用list.get(0)[0].class测试一下
      

  8.   

    public Object[] <AccountForm> allAccount(){
     List list= (List <AccountForm>)getHibernateTemplate().find("select   aa.accountId,a.userName,a.ispotency,a.registerData,aa.accountName,aa.sex,aa.nickname,aa.birthday,aa.address,aa.chinamobile,aa.telephone,aa.email,aa.city from Account as a,AccountAttributelist as aa where a.accountId = aa.accountId order by a.registerData desc");
        Object[] objArray = null;
       for(int i = 0;i < list.size();i++){
         objArray = (Object[])list.get(i);
        }
      reutrn objArray
      

  9.   

    因为你用的是复合语句,回来的是 Object[];
    转换当然有问题了~
      

  10.   

    厄,才仔细看下..你sql语句...上火..本来很简单的问题,想复杂了...
    面壁,面壁
      

  11.   

    返回值是object数组对象,所以不能转换。
      

  12.   

    这样还是一个一个赋值了啊.多了一步啊```用这样的话list.get(0)[0].class  直接就报错了````哎``两天了.都没解决啊.郁闷
      

  13.   

    List <AccountForm> allList = (List <AccountForm>)allAccount(); 
    Iterator it=allList.iterator();
    while(it.hasNext())
    {
    Object[] ob=(Object[])it.next();
    System.out.println(ob[0]);
    }
      

  14.   

    ...说了是复合查询....
    就不能用List <AccountForm>......
    全给你写上一遍好了...再说跟赋值有什么关系...public Object[] allAccount(){
     //此处用普通的list,不需要泛型
    List list= getHibernateTemplate().find("select   aa.accountId,a.userName,a.ispotency,a.registerData,aa.accountName,aa.sex,aa.nickname,aa.birthday,aa.address,aa.chinamobile,aa.telephone,aa.email,aa.city from Account as a,AccountAttributelist as aa where a.accountId = aa.accountId order by a.registerData desc");
        Object[] objArray = null;
       for(int i = 0;i < list.size();i++){
         objArray = (Object[])list.get(i);
        }
      reutrn objArray
    } Object[]  objArray = allAccount();
      for(int i=0;i<objArray.length;i++){
     if(objArray[i] instanceof AccountForm){
     //因为是复合语句,出来对象不只是AccountForm的数据,
       AccountForm form= (AccountForm)objArray[i];
        System.out.print(form.getAccountId());
       }                                     
                                
      

  15.   

    select new 包名.AccountForm(aa.accountId,a.userName,a.ispotency,a.registerData,aa.accountName,aa.sex,aa.nickname,aa.birthday,aa.address,aa.chinamobile,aa.telephone,aa.email,aa.city)........................
      

  16.   


    objArray = (Object[])list.get(i);这一行就已经报错了````