我有一个 mysql 5 数据库和一个 hibernate 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
周围是什么,但似乎您的更改没有提交到数据库。在这种情况下,更新将在事务超时后回滚。
关于MySQL + Hibernate 更新查询不被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21434822/