Я пытаюсь написать функцию Groovy/Grails 3, которая ищет объект базы данных, блокирует его, а затем сохраняет его (автоматически отпуская замок).Ждите блокировки в транзакции Grails
Если функция вызывается несколько раз, она должна ждать, пока блокировка не будет выпущена, а затем запустите обновление. Как я могу это сделать?
def updateUser(String name) {
User u = User.get(1)
// if locked, wait until released somehow?
u.lock()
u.name = name
u.save()
}
updateUser('bob')
updateUser('fred') // sees lock from previous call, waits until released, then updates
Необходимо, чтобы с помощью NewTransaction недавний ответ не смог найти его. вот старшая http://stackoverflow.com/questions/21805893/handling-grails-transactions-programatically. Не думайте, что вам нужно беспокоиться о блокировке записи. Оберните его вокруг. С помощью NewTransaction. Это также означает, что если вы запросите его сразу после этого, вам может понадобиться сделать то же самое ... – Vahid