Я обновляю объект через Hibernate, но, несмотря на то, что SQL появляется в журналах MySql без ошибок, обновление, похоже, не происходит.
Я выполняю свой запрос через Hibernate.Я проследил код через эту строку в коде соединителя mysql , и все выглядит хорошо.
Когда эта строка выполнена, запрос обновления, который выглядит правильно, появляется в моем журнале sql (это идентично тому, что содержится в PreparedStatement
).Если я копирую этот SQL-запрос прямо из журнала и выполняю его в другом соединении, он работает и данные обновляются правильно.Однако, не запуская его вручную, MySql регистрирует запрос, но данные не обновляются.
У нас нет триггеров ни в таблице, для которой мы выполняем обновление, ни в ее схеме.
Версии: Hibernate 3.6.10, MySql Connector J 5.1.41, Mysql 5.6
Боковое примечание:
Стоит отметить, чтоHibernate, кажется, считает, что объект был обновлен, даже после выселения.Я проверил это, открыв консоль eval в Idea и выполнив команду findById
.
Hibernate возвратил обновленный объект, но MySql ничего не регистрировал, указывая, что мне, вероятно, пришлось evict
объект из Hibernate.Я выселил объект (также через всплывающее окно eval) и выполнил еще один findById
.На этот раз запрос select
записывается в журналы MySql, а обновленный объект возвращается .
Однако копирование запроса select
из журналов sql и выполнение его в другом соединении непосредственно с БД НЕ возвращает обновленный объект - он возвращает старый объект.Weird.