我有一个mysql 5 DB和一个hibernate 4 appication
我使用此方法更新某个实体
public void executeNamedQuery(String namedQuery,Map params) {
if(params != null){
try{
getSession().getNamedQuery(namedQuery).setProperties(params).executeUpdate();
getSession().flush();
} catch (Exception e){
e.printStackTrace();
}
}
else{
getSession().getNamedQuery(namedQuery).executeUpdate();
}
}
这就是调试器编写的内容
Hibernate: update announcement set status=?, dcp_id=? where announcement_id=?
当我打开mysql日志表时,我在
中的查询中找到了这个查询update announcement set status=-6, dcp_id=149714 where announcement_id=81
但是行没有更新,当我在工作台中执行它时,它可以正常工作。
这可能导致什么问题?
答案 0 :(得分:0)
我不知道executeNamedQuery
周围有什么,但似乎您的更改未提交给数据库。在这种情况下,upate将在事务超时后回滚。