Мой класс домен, как это:Grails транзакций на уровне блоков с BeforeUpdate перехватчик дает StackOverflowException
Class Account {
String accountNo
...
def beforeUpdate = {
new AuditTrial(eventName:"update").save()
}
}
В моем приложении есть транзакции на уровне блоков следующим образом:
def updateAccount = {
Account.withTransaction { status ->
def source = Account.get(params.from)
def dest = Account.get(params.to)
def amount = params.amount.toInteger()
if(source.active) {
source.balance -= amount
if(dest.active) {
dest.amount += amount
} else {
status.setRollbackOnly()
}
}
}
}
Когда я пытаюсь для вызова этого метода updateAccount
, он дает исключение переполнения стека. Кажется, что метод beforeUpdate
был назван рекурсивно.
ожидать, что ваши предложения стоит преодолеть эту проблему
Можете ли вы использовать форматирование кода, чтобы люди могли читать код, пожалуйста, – leebutts
Можете ли вы обновить свой вопрос, чтобы ответить на следующее: 1) где в вашем приложении указано 'updateAccount'? Контроллер? Домен? 2) Можете ли вы опубликовать содержимое получаемого вами исключения? –