// first, save the execution data (process instance)
operations[1] = new HibernateSaveOperation();
// then, insert the logs, which may have references to the execution data
operations[2] = new SaveLogsOperation();
// last, save subprocess instances in cascade
operations[3] = new CascadeSaveOperation();
return Arrays.asList(operations);
}