The framework is "smart" enough to determine what sql should be emitted for your graph in a Save action. So when you send recursive=true you receive the minimum overhead possible. For example, only the changed entities are sent, and only the dirty fields are placed in the sql query. Now, if you just need to save the root entity/ies of the graph, then don't specify recursive=true, you will save some milliseconds I think.