org.hibernate.QueryException:并非所有参数都已设置

时间:2013-08-14 11:41:43

标签: java hibernate

我有以下异常错误:

Caused by: org.hibernate.QueryException: Not all named parameters have been set: [c]  
[UPDATE  EtudeCredit e SET e.avisfin=:c WHERE e.codeEc=:idEc]

我的代码是::

public EtudeCredit updateavisfin(Integer id, String avisfint) {
      Query d= entityManager.createQuery("UPDATE  EtudeCredit e SET e.avisfin=:c WHERE                e.codeEc=:idEc");  
        d.setParameter("idEc",id).executeUpdate();
         d.setParameter("c",avisfint).executeUpdate();
        return (EtudeCredit) d.getSingleResult();}

有任何帮助吗?怎么了?

2 个答案:

答案 0 :(得分:0)

当设置了两个参数时,您应该调用executeUpdate()一次。现在你叫它两次。

d.setParameter("idEc",id);
d.setParameter("c",avisfint);
d.executeUpdate(); 

答案 1 :(得分:0)

在设置两个参数之前,您尝试更新两次。您必须先设置参数,然后执行更新:

d.setParameter("idEc",id);
d.setParameter("c",avisfint);
d.executeUpdate();

Alos,update语句没有“持久性对象结果”,因此你不能在其上发出“getSingleResult”。如果要在更新后检索结果,则必须创建另一个查询(SELECT语句)。