MySQL + Hibernate 更新查询不被执行

标签 mysql spring hibernate

我有一个 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/

相关文章:

mysql - 力指数缺点

php - 查询内容最多的前 5 个类别,每个类别返回 5 个内容,并使用 laravel 将 associaled 用户名与内容连接起来

mysql - 如何从多个连接表中只返回一个图像行?

java - 通过使用 Hibernate 管理外键依赖关系来进行 CRUD 操作

java - 通过字段 'service' : No qualifying bean of type 表示的未满足的依赖关系

php - 如何将变量从一个php传递到另一个php

spring - Spring feign 客户端中 @QueryParam 名称中的特殊字符

具有两个休眠事务的 spring junit 测试

java - 如何在 HTML 标签属性中启用本地化?

java - 如何拦截 JTA 事务事件并获取对与事务关联的当前 EntityManager 的引用