The thing is: in the scenario you mentioned, where this object represents an entity of an persistent store, you are maintaining one representation per object in memory space. How would we deal with concurrency, in a typical multi-threaded, or even multi-application-container environment? Note that both relate to very different problems: the first addresses synchronization within memory space, the other addresses concurrent access to the database, and ensuring that an object living in memory space always represents the correct database information.