Я работаю с Hibernate 4.1.7 и драйвером MySQL. У меня очень простой стол, table1, который имеет 2 колонки, id и этикетка. В этой таблице есть 2 строки.hibernate executeUpdate неправильное количество затронутых строк
Моя проблема: когда я обновляю этикетки для всех строк, она сначала сообщает мне, что «затронуты 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. Конечно, если я отправлю те же 2 запроса в PhpMyAdmin, он сначала сообщает мне «2 строки обновлены», а затем «0 строк обновлено».
Извините за редактирование моего поста, но я странно, что никто не имеет ответа на это. Обновление таблицы SQL через Java - довольно обычная задача ... – toni07