2016-11-16 44 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)

相關問題