if (PERSIST_MODE_SAVE == mode) {
result = dao.insert(entity);
persistAssociatedAttributes(cascadeAttributes, connection, entity, mode); // AFTER
} else if (PERSIST_MODE_UPDATE == mode) {
result = dao.update(entity);
persistAssociatedAttributes(cascadeAttributes, connection, entity, mode); // AFTER
} else if (PERSIST_MODE_DELETE == mode) {
try {
persistAssociatedAttributes(cascadeAttributes, connection, entity, mode); // BEFORE
dao.remove(entity.getClass(), ModelUtilities.getEntityIdentifier(entity));