更新时出现HQL错误

时间:2013-08-05 18:22:10

标签: sql-update hql

大家好我有以下代码:

tx = session.beginTransaction();
        Query query = session.createQuery("UPDATE com.nisid.entities.Payment set  amount=:amount,paymentMethod=:method,paymentExpire=:expireDate"
                + "Where paymentId=:payid,actionId=:actionid");
        query.setParameter("amount", amount);
        query.setParameter("method", method);
        query.setParameter("expireDate", expireDate);
        query.setParameter("payid", projectId);
        query.setParameter("actionid", actionId);
        int resutl=query.executeUpdate();

尝试使用HQL进行更新,但我收到错误:galArgumentException:要遍历的节点不能为空!

我在DB中的表名为Payment,它有一个COMPOSITE KEY(projectId,actionId) 你能帮我更进一步吗???

概念是我有一个JSP页面,它检索并显示数据库从项目表,付款表和行动表中检索信息的结果。 Project与Action有许多关系,我使用Payment Table作为intermetiary表,其中包含另一个表的2 FK。

1 个答案:

答案 0 :(得分:0)

您在where之前错过了空间,并在,之后将and替换为where

Query query = session.createQuery("UPDATE com.nisid.entities.Payment set  amount=:amount,paymentMethod=:method,paymentExpire=:expireDate"
                + " Where paymentId=:payid and actionId=:actionid");