Skip to content

Instantly share code, notes, and snippets.

@marcpalmer
Created November 12, 2012 11:54
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/4058953 to your computer and use it in GitHub Desktop.
Save marcpalmer/4058953 to your computer and use it in GitHub Desktop.
Hibernate optimist locking code snippet #12
// Use any domain class
MyDomain.withTransaction { txn ->
// Load objects
def object = MyDomain.get(params.id)
// Discover we do need to make changes to the main object
try {
object.lock()
} catch (Exception e) {
// Recover from staleness
// Reload locked…
object = MyDomain.lock(params.id)
// Double check - do we still want to change it now?
}
// Make some changes
object.property1 = 'hello'
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment