Хорошо, вы используете @Transactional, поэтому любые изменения в доменном объекте будут устанавливать этот объект как грязный, и когда транзакция будет завершена, они будут сохранены неявно.Чтобы предотвратить это, вы можете использовать accountHeadInstance.discard ().
Однако я вынужден сказать вам, что ваш код как несколько анти-паттернов Grails.
Любая бизнес-логика, особенно та, которая использует @Transactional, должна быть перенесена в службы, а не в контроллеры.Контроллеры должны просто использоваться для привязки входящих параметров, маршрутизации к сервисам и получения результатов.
Хотя вы можете использовать домены в качестве параметров привязки объекта команды, это, как правило, не очень хорошая идея, с точки зрения безопасности.
При желании вы можете делать такие "Groovy" вещи, как это:
LinkedHashMap result = [:]
result[CommonUtils.IS_ERROR] = Boolean.TRUE)
render result as JSON