У меня есть объект домена, который содержит результаты вычислений на основе параметров, являющихся свойствами того же объекта домена. Я хотел бы убедиться, что каждый раз, когда параметры изменяются пользователем, он пересчитывается и правильно сохраняется в базе данных.
Я пытаюсь сделать это с помощью afterInsert (чтобы в первую очередь убедиться, что расчет правильный) и afterUpdate.
Однако, поскольку мой расчет пытается изменить сам объект, он не работает - выдает различные исключения спящего режима.
Я попытался поместить код afterUpdate в транзакцию, но это не помогло. Я боюсь, что здесь у меня возникают проблемы с циклической зависимостью.
Исключение, которое я получаю прямо сейчас:
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [esc.scorecard.PropertyScorecard#27]
События GORM предназначены для более простых вариантов использования? Я склонен заключить, что изменение объекта, который вы сохраняете в процессе сохранения, — не лучший выход.