0

我遇到了 hql 问题。

我想写一个查询,更新一个属性,它基于另一个表上的值。

这是我的例子,我有这两个表:Client 和 Widhdrawal。

客户:idClient,名称...

Widhdrawal:idWidh、成本和 idClient(外键)

现在,如果我要更新客户端,在(例如,idClient = 5)的条件下,我不能。

我试过这个,但徒劳无功:

        String hql = "UPDATE Widhdrawal W set W.cost = :salary "  + 
    "where W.Client.id_client = :employee_id)";

    Query query = session.createQuery(hql);
    query.setParameter("salary", 1000);
    query.setParameter("employee_id", 5);
    int result = query.executeUpdate();

希望有人能给点建议,谢谢。

4

3 回答 3

0

尝试这个:

 String hql = "UPDATE Widhdrawal W set W.cost = :salary "  + 
          "where W.idClient = :employee_id)";
于 2013-03-20T02:18:21.697 回答
0

谢谢,我找到了解决方案。我希望这可以帮助其他人......这个问题是由于小写。

                String hql = "UPDATE Widhdrawal W set W.cost= :newCost "  + 
                      "where W.client.id_client = :id_cl";

            Query query = session.createQuery(hql);
于 2013-03-20T13:33:45.533 回答
0

试试这个方法——

String hql = "UPDATE Widhdrawal W set W.cost = :salary" + "where W.id_client =(select id_client from client where id_client = :employee_id)";

Widhdrawal 和 client 是 POJO 类名。

于 2017-10-30T10:14:37.833 回答