public List GetBooklist(Integer id)
{
 return  this.getHibernateTemplate().find("from Bookmsg bookmsg,Catalogs catalogs where bookmsg.sortid=catalogs.catalogid and catalogs.catalogid=:id");
    }
id 为 integer类型
这个级联查询,怎会有这样的问题org.hibernate.QueryException: Not all named parameters have been set: [id] [from Bookmsg bookmsg,Catalogs catalogs where bookmsg.sortid=catalogs.catalogid and catalogs.catalogid=:id]

解决方案 »

  1.   

    你未免有些粗心:“catalogs.catalogid=:id”,等号后加了一个冒号能不出错吗 
      

  2.   

    对啊,有一个:表明id是一个参数吧,建议你不要一个语句写完,先生成query,再将id传入
      

  3.   

    public List GetBooklist(Integer id) 
    {
      String hql ="from Bookmsg bookmsg,Catalogs catalogs where bookmsg.sortid=catalogs.catalogid and catalogs.catalogid=:id"; 
    query.setInteger("id", catalogid);
    return  this.getHibernateTemplate().find(hql);    } 
    试试
      

  4.   

    public List GetBooklist(Integer id) 

      String hql ="from Bookmsg bookmsg,Catalogs catalogs where bookmsg.sortid=catalogs.catalogid and catalogs.catalogid=?"; 
      Query query = this.getSession().createQuery(hql);
      query.setParameter(0,id);  
      return  query.list();    

    这样的话就可以啦。
      

  5.   

    喜欢J2EE的朋友欢迎加入QQ群36643256,学习、交流,共同探讨技术与工作、共享信息、结交朋友