以下的程式,執行第一次update時還可以跑到commit,但是在頁面上
仍然顯示修改前的結果。
但第二次執行update時,就卡住到不了commit。
Transaction tx = getSession().beginTransaction();
try {
SQLQuery query = getSession().createSQLQuery("update CUSTOMER set NAME='"+customer.getName()+"', ADDRESS='"+customer.getAddress()+"'"+
" where CUSTOMER_ID="+customer.getCustomerId()+"");
query.executeUpdate();
tx.commit();
}catch (Exception e) {
tx.rollback(); //回滾事務
}
我把上面產生出來的SQL,貼到sqldeveloper上面去執行,是可以正常執行的。
為甚麼update後有執行commit,之後的update卻仍然卡住,請問卡住不動的原因是什麼呢?
另外我將以上的寫法改成:
getHibernateTemplate().update(customer);
結果也是一樣。
改成以下這樣就好了:
Session session = getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
session.update(customer);
tx.commit();