update语句在数据库中手动执行数据生效,在idea中运行提示受影响的行数也对,但是数据库中对应数据却未修改


StringBuffer sb = new StringBuffer();
        sb.append(" UPDATE TABLE p1 SET p1.NUMBER = (");
        sb.append("    SELECT V.NUMBER FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY p.PID ORDER BY ID ASC ) NUMBER , p.ID FROM TABLE  p) V");
        sb.append(" WHERE V.ID = p1.ID) WHERE EXISTS ( SELECT p.PID, p.ID, ROW_NUMBER() OVER (PARTITION BY p.PID ORDER BY ID ASC ) NUMBER FROM TABLE  p");
        sb.append(" WHERE p.ID = p1.ID) AND PID = :PID ; COMMIT;");
        Query query = this.getEntityManager().createNativeQuery(sb.toString());
        query.setParameter("PID", id);
        int num = query.executeUpdate();
        System.out.println("==================================sql执行完毕 Test=======受影响的行数为:" + num);

有没有取消自动提交模式。

受影响的行数sout出来也是正常的行数
后台打出的log中的sql语句放到数据库工具里面执行 数据能够成功的更新。

看你的sql写了提交的,事务有回滚么