diff --git a/src/model.cpp b/src/model.cpp index 4dbfd93..ffd7069 100644 --- a/src/model.cpp +++ b/src/model.cpp @@ -858,6 +858,7 @@ bool Model::save(ModelData * model_data, bool save_whole_tree) void Model::save_tree(bool save_whole_tree) { model_env->has_primary_key_set = has_primary_key_set; + SaveMode origin_save_mode = save_mode; if( model_env->status && save_whole_tree ) { @@ -897,7 +898,7 @@ void Model::save_tree(bool save_whole_tree) if( model_env->status && save_whole_tree ) { - if( save_mode == DO_DELETE_ON_SAVE ) + if( origin_save_mode == DO_DELETE_ON_SAVE ) model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITH_FOREIGN_KEY; else model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITHOUT_FOREIGN_KEY;