0

我有以下异常错误:

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();}

有什么帮助吗?怎么了?

4

2 回答 2

0

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

d.setParameter("idEc",id);
d.setParameter("c",avisfint);
d.executeUpdate(); 
于 2013-08-14T11:46:16.007 回答
0

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

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

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

于 2013-08-14T14:10:45.597 回答