[问题] Hibernate executeUpdate的问题

楼主: lueichun (no anonymous)   2020-07-23 16:15:17
※状况概述:
以下的程式,执行第一次update时还可以跑到commit,但是在页面上
仍然显示修改前的结果。
但第二次执行update时,就卡住到不了commit。
※程式码:
public void edit(Customer customer){
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);
结果也是一样。
作者: swallowcc (guest)   2020-07-23 17:05:00
e.printstacktrace() 贴上去看一下错误...
作者: tw11509 (John-117)   2020-07-23 23:53:00
真的想追原因的话,试着用debugger吧
作者: achaos (热~~~~)   2020-07-24 22:07:00
我猜少了session.close
作者: rexking1022   2020-07-26 14:55:00
同上,commit后,连线没关,可以试试看程式跑完后到DB执行for update,如果lock就是没关连线
作者: fgh81113 (阿景)   2020-07-26 22:25:00
是不是第一个的getSession()用static放session

Links booklink

Contact Us: admin [ a t ] ucptt.com