我有一个mysql 5 DB和一个休眠4应用程序
我使用这种方法来更新某个实体
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
但该行未更新,当我在工作台中执行时,它工作正常。
是什么引起了这里的问题?
最佳答案
我不知道executeNamedQuery
怎么回事,但是您的更改似乎没有提交到数据库。在这种情况下,upate将在事务超时后回滚。