大家好我有以下代码:
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。
答案 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");