My thoughts on this aren't very clear yet (there is a lot of fog between my ears :-)), but ...
I am wondering if I could an AOP system like Google-Guice to wrap the automatically created setters in code that checks for equality before the assignment and sets the dirty flags after, perhaps by creating a new setter and using Object.set() to intercept the call.
I don't know enough Groovy yet...
Must keep reading.
BTW, I am working on a fat-client application, not a webapp, so I don't think Spring is appropriate.
G. Ralph Kuntz, MD