from tb_VipUser v inner join tb_User u on v.id=u.id where u.name=? 
其中tb_VipUser 是hibernate从数据库中把对应的表名生成的javaBean

解决方案 »

  1.   

    从你的表的关系 tb_VipUsr 应该有个外键id 对应你的tb_User
    所以你的 tb_vipUser应该对应的实体类中应该有个属性User userOwner (我随便取的)所以你的hql = "from VipUser vu wehre vu.userOwner.name=?";
    更多hibernate的查询参看:
    http://blog.csdn.net/caoyinghui1986/archive/2008/06/15/2549386.aspx
      

  2.   

     from tb_VipUser v where v.tb_User.id=v.id and v.tb_User.name=? 
      

  3.   


            Query query1=session.createQuery("from VipUser v where v.id=(select id from User where name = ?)");
            query1.setString(0,name);
            List VipUserList1=query1.list();
            for (Iterator iterator = VipUserList1.iterator(); iterator.hasNext();) {
                VipUser vuer1 = (VipUser) iterator.next();
                System.out.println(Vuer1.getName());
            }
    直接这样不行吗?
      

  4.   

    只要映射文件生成对应的主外键的 one-to-many 和many-to-one 
    然后在<many-to-one> 里面加个 lazy="false" hql = "from VipUser vu wehre vu.userOwner.name=?"; 这么写就行
    他会自动去找你的子表  配置文件对应字段写好就行,你的配置文件如果的自动生成
    应该是关联了一个从表的对象,一直get取就行