Skip to content

Instantly share code, notes, and snippets.

@marcpalmer
Created November 12, 2012 11:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marcpalmer/4058954 to your computer and use it in GitHub Desktop.
Save marcpalmer/4058954 to your computer and use it in GitHub Desktop.
Hibernate optimist locking code snippet #13
// Use any domain class
MyDomain.withTransaction { txn ->
// Load objects
def object = MyDomain.get(params.id)
if (object.type == 'whatever') {
// Discover we do need to make changes to the main object
// Just discard what we had, we haven't changed it
// and get the new locked version
object = MyDomain.lock(params.id)
// Again, the decisions we made about changing it may be
// dependent on values we just refreshed from the DB
// So check it again
if (object.type == 'whatever') {
// Make some changes
object.property1 = 'hello'
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment