gpt4 book ai didi

mysql - hibernate多个更新查询单个事务

转载 作者:行者123 更新时间:2023-11-29 13:17:05 26 4
gpt4 key购买 nike

我正在将 hibernate 与 mysql 数据库结合使用,但在单个事务中进行多个更新时遇到问题

这是我的代码

public void  updateOEMUser(OEMUserDetailsDTO userDTO) throws Exception{
Session session = GCCPersistenceMangerFactory.getSessionFactory().openSession();
Transaction tx = null;
try{
String query = "update oemuserdata set full_name=\""+userDTO.getFullName()+ "\" ,contact_no=\""+userDTO.getContactNo() + "\" where user_id="+userDTO.getUserId();
String query1 = "update usermasterdata set account_status="+userDTO.getAccountStatus() + " ,user_name=\"" + userDTO.getUserName() + "\" where user_id="+userDTO.getUserId();
Query q = session.createSQLQuery(query);
Query q1 = session.createSQLQuery(query1);
tx = session.beginTransaction();
q.executeUpdate();
q1.executeUpdate();
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
throw new RuntimeException("HibernateException_updateOEMUser");
}finally {
session.close();
}
}

代码可以工作,但是当我使“q1.executeUpdate()”失败时,“oemuserdata”中的记录被锁定在 Mysql 中。

我做错了什么吗?

最佳答案

尝试使用这种模式。

StringBuilder query = new StringBuilder();
query.append("UPDATE CLASSNAME_FIRST a ,");
query.append("CLASSNAME_SECOND b,");
query.append("SET a.full_name='"+userDTO.getFullName()",");
.....

int var = stmt.executeUpdate(query);

关于mysql - hibernate多个更新查询单个事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21326837/

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