日期:2014-05-17  浏览次数:20722 次

请问我这条hql的update语句那个地方出问题了?????
Java code
Query q = session.createQuery("update User u set u.birthday=:bday , u.realName=:rn , u.sex=:sex , u.birthPlace=:bP , u.livePlace=:lp , u.bloodType=:bt where u.username=:username ");
q.setParameter("bday", u.getBirthday());
q.setParameter("rn", u.getRealName());
q.setParameter("sex", u.getSex());
q.setParameter("bP", u.getBirthPlace());
q.setParameter("lp", u.getLivePlace());
q.setParameter("bt", u.getBloodType());
q.setParameter("username", u.getUsername());
q.executeUpdate();



总是报“could not lacate named parameter [username]”的错误。上面插入的所有值debug过,都是有的,User u的所有属性名都没问题,update语句的语法估计也是这个样的呀,数据库表中也有username这个属性,忘大家指出我粗心大意的地方。

------解决方案--------------------
楼主代码是复制过来的吗?如果是的话那就是中文空格导致的,你username后边是个中文空格,检查下吧