Пессимистическая блокировка в GORM, где запрос

Я хотел бы получить пессимистический замок с GORM, где запрос.

Что-то вроде

def query = Person.where {
 firstName == "Bart"
}
//instead of where.findAll()
List personsLocked = where.lockAll()

Я знаю, я могу достичь этого по критериям API:

List personsLocked = Person.createCriteria().list {
 eq('firstName', 'Bart')
 lock true
}

Есть ли способ достичь этого с помощью запроса "where"?

1 ответ

lock не доступен в grails.gorm.DetachedCriteria (результат where) и доступен только с org.codehaus.groovy.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder предоставленной createCriteira или явным вызовом lock() на случаях и, таким образом, изменение LockMode на LockMode.UPGRADE

Вы всегда можете использовать оператор с расширенными точками и заблокировать результаты после их получения.

licensed under cc by-sa 3.0 with attribution.