使用Join Hibernate(HQL)

rkttyhzu  于 2023-10-23  发布在  其他
关注(0)|答案(3)|浏览(157)

我的总部出了点问题。
我想写一个查询,更新属性,这是基于另一个表上的值。
这是我的例子,我有这两个表:客户和Widhdrawal。
客户端:idClient,名称...
宽度:idWidh、cost和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();

希望有人能给我一些建议,谢谢。

w1e3prcc

w1e3prcc1#

试试这个:

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

j2cgzkjk2#

谢谢你,我找到解决办法了。我希望这可以帮助其他人…这个问题是由小写字母引起的。

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

            Query query = session.createQuery(hql);
esyap4oy

esyap4oy3#

试试这个:

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

Widhdrawal和客户端是POJO类名称。

相关问题