String sql2="from WtgooProductdetal wp,WtgooCompany wc where " +
"wp.companyId=wc.comId and wp.ptGsid =:dsj";
   //sql+="and wp.ptTitle =?";
   Query query =getSession().createQuery(sql2);
   query.setParameter("dsj",530);错误提示:Not all named parameters have been set: [dsj]帮解决一下

解决方案 »

  1.   

    Query   query   =getSession().createQuery(sql2).setInteger("dsj", 530); 
      

  2.   

    按照楼主思路应该是:
    query.setParameter("dsj",530,Hibernate.INTEGER); 
    //Hibernate.INTEGER为参数类型;这样相对于setInteger()这种形式的好处是没有局限性.
      

  3.   

    and   wp.ptGsid   =:dsj"; 我本人没用过这种写法,关于sql错误,记得打印出来完整的sql,是最好用的办法
      

  4.   

    我和3楼一样也没有用过你这种写法,不过对于sql
    如用hibernate,最好在配置文件中设置
    <property name="hibernate.show_sql">true</property>
    这样的话把控制台输出的sql在数据库中执行一下,看看有什么问题
      

  5.   

    50419253 java高手群 一起探讨啊 
      

  6.   

    三楼所说的那个不过是 hql的一种表达形式而已,和"and       wp.ptGsid       =?"; 没什么很大区别,
    这种形式是指定参数名称的...
    如:
    一:
    query.setParameter("dsj",530,Hibernate.INTEGER);  
    二(带问号形式):
    query.setParameter(0,530,Hibernate.INTEGER);   
      

  7.   

    http://www.KingOfCoder.com 純編程文章網