HQL

query.setParameter(...)
参数没设置

解决方案 »

  1.   

    Expected positional parameter count: 1, actual parameters: [] [from PetInfo pf where pf.petId=?] 
    意思是程序里面有一个参数需要设定,而你没有设定这个参数。
    所以你要用query.setInteger(0, id); 来给hql中的那个问好设置值
      

  2.   

     query.setInteger(0, id); 你的这个位置错了
    ret=(PetInfo)query.list().get(0); 
            query.setInteger(0, id);你把这两个位置换下
      

  3.   

    String hql="from PetInfo pf where pf.petId=?"; 
    Query query=session.createQuery(hql); 
    query.setInteger(0, id);
    ret=(PetInfo)query.list().get(0); 
    先设置参数,再查询

     
      

  4.   

    先把你的hql改一下:
    String hql="from PetInfo pf where pf.petId=:petId"; 然后再 query.setInteger("petId", id);这样就不会错啦!
      

  5.   

    ret=(PetInfo)query.list().get(0);
    query.setInteger(0, id); 
    这两句话位置颠倒了