【发布时间】:2015-04-27 13:14:38
【问题描述】:
我正在使用 Hibernate 4.1.7 和 MySQL 驱动程序。我有一个非常简单的表,table1,它有 2 列,id 和 label。 在此表中,有 2 行。
我的问题是:当我更新所有行的标签时,它首先告诉我“2 行受影响”。伟大的。当我用相同的值更新相同的行时,它也会告诉我“2 行受影响”。错了,它应该告诉我“0 行受影响”,因为我已经更新了数据。
下面是代码:
public static void Integer doUpdate(){
final Query query = hbmSesssion.createSQLQuery("UPDATE table1 SET label = 'toto'");
final Integer result = query.executeUpdate();
hbmSession.getTransaction().commit();
}
在我的主要:
System.out.println("nb updates: " + doUpdate());
//gives "nb updates: 2", that's OK
//then, I check in the Database, the update is ok, all the lines have 'toto' values
System.out.println("nb updates: " + doUpdate());
//gives "nb updates: 2", that's wrong!
我是否遗漏了文档中的一些重要内容?我对普通的 JDBC 语句也有同样的问题,所以我怀疑是滥用 Java/MySQL 驱动程序。当然,如果我在 PhpMyAdmin 中发送相同的 2 个查询,它首先告诉我“更新了 2 行”,然后是“更新了 0 行”。
【问题讨论】:
-
很抱歉编辑了我自己的帖子,但我觉得奇怪的是没有人对此有答案。通过 Java 更新 SQL 表是一项很常见的任务...