What do you mean by a "persistent object"?  This dao should not assume that the jobExecution provided is either fully populated or populated with the latest information.  An example of it's use is the JobExplorer.  The JobExecution passed from there does not contain the deserialzied context.  The same assumptions cannot be made for the getExecutionContext for the StepExecution either.