Search code examples
grailsgrails-orm

How do I know if Grails domain POJO was changed since its retrieval?


I am patching a domain object in my code. At the end, I need to save the object but only if it has been actually changed. Is it possible to avoid custom boolean flags having code like that?

User user = User.find(...)
if(maybe)
  user.name = "John"
if(user.changed())
  user.save()

Solution

  • You can use isDirty to make this check.

    if(user.isDirty() && user.save()) {
      // user saved successfully
    }