@Override
    @Transactional(rollbackFor = Throwable.class)
    public Boolean updateWithoutCheck(InlongStreamRequest request, String operator) {
        LOGGER.debug("begin to update inlong stream without check, request={}", request);
        // make sure the stream was exists
        String groupId = request.getInlongGroupId();
        String streamId = request.getInlongStreamId();
        InlongStreamEntity streamEntity = streamMapper.selectByIdentifier(groupId, streamId);
        if (streamEntity == null) {
            LOGGER.error("inlong stream not found by groupId={}, streamId={}", groupId, streamId);
            throw new BusinessException(ErrorCodeEnum.STREAM_NOT_FOUND);
        }

        String errMsg = String.format("stream has already updated with groupId=%s, streamId=%s, curVersion=%s",
                streamEntity.getInlongGroupId(), streamEntity.getInlongStreamId(), request.getVersion());
        if (!Objects.equals(streamEntity.getVersion(), request.getVersion())) {
            LOGGER.error(errMsg);
            throw new BusinessException(ErrorCodeEnum.CONFIG_EXPIRED);
        }
        // Processing extended attributes
        String extParams = packExtParams(request);
        request.setExtParams(extParams);
        CommonBeanUtils.copyProperties(request, streamEntity, true);
        streamEntity.setModifier(operator);
        int rowCount = streamMapper.updateByIdentifierSelective(streamEntity);
        if (rowCount != InlongConstants.AFFECTED_ONE_ROW) {
            LOGGER.error(errMsg);
            throw new BusinessException(ErrorCodeEnum.CONFIG_EXPIRED);
        }
        // update stream fields
        updateField(groupId, streamId, request.getFieldList());
        // update stream extension infos
        List<InlongStreamExtInfo> extList = request.getExtList();
        saveOrUpdateExt(groupId, streamId, extList);
        if (request.getSyncField()) {
            List<StreamSinkEntity> sinkEntityList = sinkMapper.selectByRelatedId(groupId, streamId);
            for (StreamSinkEntity sinkEntity : sinkEntityList) {
                StreamSinkOperator sinkOperator = sinkOperatorFactory.getInstance(sinkEntity.getSinkType());
                sinkOperator.syncField(sinkOperator.getFromEntity(sinkEntity).genSinkRequest(), request.getFieldList());
            }
        }
        LOGGER.info("success to update inlong stream without check for groupId={} streamId={}", groupId, streamId);
        return true;
    }
Query and set the extended information and data source fields of the inlong stream
inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java