public UserInfo queryById(String id) {
UserInfo user = new UserInfo();
String hql = "FROM UserInfo as userinfo WHERE userinfo.id=?";
Query q = session.createQuery(hql);
q.setString(0, id);
List list = q.list();
Iterator iter = list.iterator();
while (iter.hasNext()) {
user = (UserInfo)iter.next();
}
this.closeSession();
return user;
}注意红色的那行代码,hibernate官方推荐的hql语句
这样的话,你想通过啥查都可以·······

解决方案 »

  1.   

    晕,代码里面不能改颜色???
    那行代码是String hql = "FROM UserInfo as userinfo WHERE userinfo.id=?";
    也就是说通过hql语句进行查询
    UserInfo是需要持久化的类
    userinfo是数据库表
    where后面就简单了,给定的条件哈
    hql比较强大,一定要学,嘿嘿···········
      

  2.   

    谢谢你,可是为什么我把你的code 复制过来这么多错呢?
    Query、session、Iterator、iterator、closeSession这些东西都是没有被定义或者是没有定义的类型。
      

  3.   

    当然,你需要实现HibernateSessionFactory 接口,生成session对象
    才能用下面的方法
      

  4.   

    HibernateSessionFactory不是接口啊
      

  5.   

    应该findById是根据主键查。。当然记录只有一条。。可以返回对象。。
    如果根据其他查,不是主键。。就不能保证只能查到一条记录。。
    当然返回list了。。你可以查询出list然后循环取出值。。在用UserInfo的set方法赋值。。形成个对象