{quote:pabrantes} I see the problems of synchronization within memory and correct representation of the database information the same. Because if the implemention has correct synchronization then at all times the object will be representing what is in database (unless you directly change the database by hand, which you shouldn't). {quote} They are not the same, because it's one thing to mediate concurrent access to an object's representation in memory, and another is to think that one object can survive in memory though many transactional units, and still represent the correct values that currently live in the persistent store. I remind you once again, that there can exist alternative means to access the persistent store, hence modifying object state. The application may have no way of knowing these changes, unless you implement proper mechanisms.