原SQL语句:from 数据表名
HQL语句:from 映射到数据表的对象名

解决方案 »

  1.   

    代码里是这样写的 Query users = session.createQuery("SELECT name FROM UserInfo  WHERE id=1");
    还是出下面这样的错信息: cleaning up connection pool: jdbc:mysql://localhost/test
    net.sf.hibernate.QueryException: undefined alias: name [SELECT name FROM test.UserInfo  WHERE id=1]
      

  2.   

    public static void main(String avgs[]) throws HibernateException {
           
          SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
          Session session = sessionFactory.openSession();
          Query users = session.createQuery("SELECT u.id FROM UserInfo as u  WHERE u.id=1");      for (Iterator  iterator = users.iterate(); iterator.hasNext(); ) {
            test.UserInfo  user = (test.UserInfo) iterator.next();//提示这数据类型转换错误
            System.out.println(user.getName()+ "\n\tPass: " + user.getPassword());
          }
          session.close();
          sessionFactory.close();          }
      

  3.   

    要按主键查数据, 不要去写什么HQL.
    直接  
    User user = session.load(User.class, id);
      

  4.   

    Query users = session.createQuery("SELECT u.id FROM UserInfo as u  WHERE u.id=1");
    for (Iterator  iterator = users.iterate(); iterator.hasNext(); ) 这个完全错误,  要调用Query的list()方法, 才有真正去查数据
    应该这样
    Iterator iter = session.createQuery("from UserInfo").list().iterate();
    另外,必须查全部数据, 这样才能生成一个完整的PO,  Hibernate不允许不完整对象
    如果你写 select u.id from UserInfo  , 那么返回的只是一个id的数组, 当然无法转换成PO,当然出现类型错误
      

  5.   

    我改成这样就可以查询正常了
     SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
          Session session = sessionFactory.openSession();
          Query query = session.createQuery(" FROM UserInfo WHERE  name like'%o%'");
        
          Iterator iterator = query.iterate();   //取出每条数据   
          while(iterator.hasNext()) {
              test.UserInfo po = (test.UserInfo)iterator.next();//注意:这里取出的是TeamPo对象 
           System.out.println("Name: "+po.getName()+"\t Pass: "+po.getPassword()); 
          }
          session.close();
          sessionFactory.close();
     
    TO: aChinese(一个中国人) ( ) Hibernate不允许不完整对象如果你写 select u.id from UserInfo  , 那么返回的只是一个id的数组, 当然无法转换成PO,当然出现类型错误
    ----------------------
    你这句话的意思是说Hibernate不可以进行表内的某些字段筛选查询吗?只能一次查询出表内所有字段?
    假定一个表内有很多字段,我目前的查询只要部分,那应该怎么做呢?
    我感觉这句不对吧!按你的说法下面这条查询也是错误的喽!SELECT team.teamName, team.teamId FROM Team AS team WHERE teamId = '001'http://www.xon.cn/article.php/11226 上面的语句来自此处,我被搞晕了
      

  6.   

    晕死!!一会儿有冒出一个HQL, 中国的程序员就是悲哀呀!!天到黑学这学那!!还不是为了生存!!
      

  7.   

    看你给我的地址, 它是怎么用的
        ....//省略   //查询数据   
    Query query = session.createQuery("SELECT team.teamName, team.teamId FROM Team AS team WHERE teamId = '001'");   //取得数据List
    Iterator iterator = query.iterate();   //取出每条数据  
     while (iterator .hasNext()) {
            Object[] o = (Object[])iterator .next();
            System.out.println(o[0]);  
            System.out.println(o[1]); 
      }-----------------------------------------------
    object[] o   看到了吗?  只是普通数组, 它并没把他转换成po