Метод GORM refresh () не получает последние данные из базы данных - PullRequest
3 голосов
/ 09 августа 2009

После сохранения измененного имени пользователя (используя flush:true) следующее выражение оценивается как ложное:

User.get(u.getId()).name == u.refresh().name

Левая сторона берет измененное имя пользователя, а правая возвращает «старое» значение.

Идеи? Обновление ссылки "u" в следующем HTTP-запросе работает.

1 Ответ

7 голосов
/ 14 января 2011

Это делается в рамках транзакции? Если ваш код выполняется внутри транзакции, то даже использование flush: true не приведет к немедленному сохранению изменений в базе данных. Изменения в объектах домена, сделанные в транзакции, сбрасываются только после завершения транзакции.

...