Скажите, у меня есть модель Person
.Мой домен использует триггеры GORM следующим образом:
def afterInsert() {
someService.someMethod(this.id)
}
def afterUpdate() {
someService.someMethod(this.id)
}
SomeService
будет выглядеть так:
def someMethod(id) {
// This query returns stale object
def person = Person.findById(id)
}
Всякий раз, когда вызывается someMethod()
в SomeService
,запрос не возвращает обновленный объект.Вместо этого он получает старую версию / данные.
Я предполагаю, что к моменту вызова afterUpdate()
изменения еще не сохраняются в БД.Я также пытался person.refresh()
, но, очевидно, он сталкивается с той же проблемой.
Я также пытался .save(flush:true)
в исходном сервисе, где объект сохраняется, но он все еще возвращает старые данные в gormМетод триггера.
Так есть ли у меня возможность запросить объект Person
таким образом, чтобы он получал самые последние данные?
Я немного озадачен тем, как это можно реализовать.