2016-11-16 28 views
1

请帮忙解决下面的错误。我已经尝试了下面的代码,但我得到下面提到的错误。java.lang.IllegalArgumentException:查询中没有位置参数:update SysUser set deleted =:deleted where id =:id

java.lang.IllegalArgumentException:如果查询没有位置参数:更新SYSUSER集中删除=:删除其中id =:ID

Session session = getSession(); 
boolean deleted=true; 
int id=1; 

String hqlUpdate = "update SysUser set deleted = :deleted where id = :id"; 
int updatedEntities = session.createQuery(hqlUpdate) 
      .setBoolean("deleted", deleted) 
      .setInteger(id, id) 
      .executeUpdate(); 
session.close(); 
+0

它是否解决了更换idsetInteger(id,id)现在的问题? – developer

+0

请检查我的答案。 @Sakthi Draggerz – ozgur

+0

是非常感谢 –

回答

0

您需要添加参数名称:id妥善为setInteger在你HQL查询如下所示:

int updatedEntities = session.createQuery(hqlUpdate) 
        .setBoolean("deleted", deleted) 
        .setInteger("id", id) 
        .executeUpdate(); 
+0

为什么“delete”参数没有“:”和“id”参数有“:”? –

+0

我尝试如上,但我得到了异常作为java.lang.IllegalArgumentException:参数:id不存在作为[更新SysUser设置删除=:删除其中id =:id]中的命名参数。请帮助我,我哪里出错 –

+0

更新上面的代码,现在转介它 – developer

-1

"id"setInteger("id",id)