1. A method for recursively saving an inserted or updated object that is part of a hierarchy to a database, the method comprising: receiving a value for a first record in a database; determining that a parent record of the first record has a field that is dependent on the received value; recursively determining that a grandparent record of the first record has a field that is dependent on the received value; loading the first record from the database into a first object; updating, using a processor operatively coupled to a memory, the first object with the received value; flushing the updated first object to the first record in the database; loading the parent record from the database into a second object; updating the second object based on the received value; flushing the updated second object to the parent record in the database; recursively loading the grandparent record from the database into a third object; recursively updating the third object based on the received value; and recursively flushing the updated third object to the grandparent record in the database.