I'm going to +1 on this recommendation. ORMs greatly simplify your life, especially when it comes to caching. I'm also going to recommend that you don't try to write anything that prevents updates to the business objects from going directly to the DB unless you are really OK with the idea of losing data. Sure, you can do multiple changes to an object in memory before writing it to disk, but you definitely don't want to do all your updates to objects on copies that are in the cache and then rely on a background thread to sync those objects to DB-- that sounds like a recipe for losing data, letting inconsistency creep in, etc...
-- awl
