我使用與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中失敗。
我做錯了什麼?
爲什麼不使用HQL執行更新? –
你怎麼讓q1.executeUpdate()失敗? –
@will - 我在語句中添加了一個斷點並斷開了數據庫。 – shailesh