Microsoft的Jdbc驱动程序在不按照顺序读取的情况下会发生这个异常.建议楼主换个驱动确定一下是不是驱动问题.

解决方案 »

  1.   

     sql="select {s.*},{e.*} from stu_base  s inner join education  e  on s.sno=e.sno "; 
    直接用
     sql="select  *  from stu_base  s inner join education  e  on s.sno=e.sno "; 就可以了啊.
      

  2.   

    是的
    你要在hbm.xml里面把  s  和   e  也都印社下才行
    这就是hibernate不灵活的地方了
    select 的东西 xml里面都要有
      

  3.   

    sql改成sql="select  *  from stu_base  s inner join education  e  on s.sno=e.sno ";
    并且只加sqlQuery.addEntity("s", StuBaseInfo.class); 可以执行
    但是加
         sqlQuery.addEntity("s", StuBaseInfo.class); 
        sqlQuery.addEntity("e", Education.class);  
    就不能执行 抛出Caused by: java.sql.SQLException: No data found异常
    我的代码是
        String sql="select  *  from stu_base  s inner join education  e  on s.sno=e.sno where s.sno=04261001";
        SQLQuery sqlQuery=session.createSQLQuery(sql);
        sqlQuery.addEntity("s", StuBaseInfo.class);
        sqlQuery.addEntity("e", Education.class);
        List list=sqlQuery.list();
        StuBaseInfo s=(StuBaseInfo)list.get(0)
        Education e=(Education)list.get(1);
    请大家帮我看看有什么错误。
      
      

  4.   

    会不会是 另一个表(Education) 中没有数据啊!
      

  5.   

    sql="select  *  from stu_base  s inner join education  e  on s.sno=e.sno ";  
      

  6.   

    String sql="select  *  from stu_base  s inner join education  e  on s.sno=e.sno where s.sno=04261001";
        SQLQuery sqlQuery=session.createSQLQuery(sql);
        sqlQuery.addEntity("s", StuBaseInfo.class);
        sqlQuery.addEntity("e", Education.class);
        List list=sqlQuery.list();
        StuBaseInfo s=(StuBaseInfo)list.get(0)
        Education e=(Education)list.get(1); 改成String sql="select {e.*}, {s.*}  from stu_base  s inner join education  e  on s.sno=e.sno where s.sno=04261001";
        SQLQuery sqlQuery=session.createSQLQuery(sql);
        sqlQuery.addEntity("s", StuBaseInfo.class);
        sqlQuery.addEntity("e", Education.class);
        List list=sqlQuery.list();
      Object[] obj = (Object[])list.get(0);
        StuBaseInfo s=(StuBaseInfo)obj[0];
        Education e=(Education)obj[1]; 我完全按你的要求运行成功了。
      

  7.   

    嗯 hibernate 里面经常会有这种问题!
      

  8.   

    哎,可是我照你的代码执行时还是出现[Microsoft][ODBC SQL Server Driver]无效的描述符索引异常,不知道原因在哪里,郁闷呐!
      

  9.   

    可以使用{}符号吗???
    select s.*,e.* from stu_base  s inner join education  e  on s.sno=e.sno 
      

  10.   

    // Query query = this.getSession().getNamedQuery("detilQuery");
    // query.setLong(0, id);
    // List result = query.list();
    // Iterator it = result.iterator();
    // while (it.hasNext()) {
    // Object[] results = (Object[]) it.next();
    // Bid bid = (Bid) results[0];
    // tender = (Tender) results[1]; 
    // }
    各位帮忙看看  ,怎么接收数组