0

大家好,我有以下代码:

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:要遍历的节点不能为空!

我在数据库中的表称为 Payment 并且它有一个 COMPOSITE KEY ( projectId,actionId) 你能帮我进一步吗?

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

4

1 回答 1

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");
于 2013-08-05T23:31:14.323 回答