gpt4 book ai didi

java - 更新记录 if somcolumn! ="somevalue",使用 Hibernate saveorupdate()

转载 作者:行者123 更新时间:2023-11-30 04:15:24 25 4
gpt4 key购买 nike

我正在尝试在 Hibernate 中编写条件,我想要的输出是如果列 empfield1 的值不是“REGULARIZE”,则更新,否则不更新记录。

我已经尝试过以下一种。

Session session = factory1.openSession();
Criteria criteria=session.createCriteria(EmployeePunch.class);
criteria.add(Restrictions.ne("empField1","REGULARIZE"));
EmployeePunch empPunch = (EmployeePunch)criteria.uniqueResult();
empPunch.setId(empPuncId);
empPunch.setSigninTime(inTime);
empPunch.setSigninDate(dateOfUpdate);
empPunch.setSignoutTime(outTime);
empPunch.setPresent(presentStatus);
empPunch.setLastUpdateBy(empcode);
empPunch.setLastUpdateDate(time);
empPunch.setEmpField1(remark);
session.saveOrUpdate(empPunch);
tx.commit();

但它给了我错误

Exception : query did not return a unique result: 527

最佳答案

我认为你忘记提供 id 而不提供 id hibernate 将返回多条记录 empField1="REGULARIZE"

您还应该提供 ID,如下所示:

Criteria criteria=session.createCriteria(EmployeePunch.class);
criteria.add(Restrictions.ne("empField1","REGULARIZE"))
.add(Restrictions.eq("empPuncId",empPuncId));

现在它将返回单个匹配记录,然后更新它。

关于java - 更新记录 if somcolumn! ="somevalue",使用 Hibernate saveorupdate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com