public User getUserByLoginidAndPasswd(String loginid, String passwd) {       
      String hql = "select user from User user where user.loginid=? and user.passwd=?";
         List<User> list = getHibernateTemplate().find(hql,new Object[]{loginid,passwd});
    }不执行    报的错误是  2009-05-25 15:35:54,406 ERROR [org.hibernate.util.JDBCExceptionReporter] - <No value specified for parameter 3>
2009-5-25 15:35:54 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: could not execute query; bad SQL grammar [select user0_.ID as ID7_, user0_.loginid as loginid7_, user0_.NAME as NAME7_, user0_.password as password7_, user0_.registerId as registerId7_, user0_.address as address7_, user0_.linkman as linkman7_, user0_.postCode as postCode7_, user0_.tel as tel7_, user0_.GPRSPHONEID as GPRSPHO10_7_, user0_.LastUpdateDate as LastUpd11_7_, user0_.branchID as branchID7_, user0_.ROLE_ID as ROLE13_7_, user0_.DESCN as DESCN7_, user0_.branchFlag as branchFlag7_, user0_.comeFlag as comeFlag7_ from t_user user0_ where user0_.loginid=? and user0_.password=?]; nested exception is java.sql.SQLException: No value specified for parameter 3
Caused by: java.sql.SQLException: No value specified for parameter 3
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2296)但是    把 ?  号  换成利用 + 号连接就能正常执行!!!!!!!     我希望不该变?号的写法  找错程序的错误!!!!!!!    谁来告诉我以下   谢谢  !!!!!!!!!
#############hibernate
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
#hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.cache.use_query_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider

解决方案 »

  1.   

    应该是参数传入问题,user也是关键字
      

  2.   

    换成select user from User u where u.loginid=? and u.passwd=?"; 试试看!!
      

  3.   

    应该是你的设置参数的问题
    No value specified for parameter 3 
    你指定了3个参数,而你hql有2个问号参数。
      

  4.   

    List<User> list = getHibernateTemplate().find(hql,new Object[]{"loginid","passwd"});加双引号看,直接那样不行