All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.huaweicloud.dws.client.op.Delete Maven / Gradle / Ivy

There is a newer version: 2.0.0-r0
Show newest version
package com.huaweicloud.dws.client.op;

import com.huaweicloud.dws.client.collector.ActionCollector;
import com.huaweicloud.dws.client.exception.DwsClientException;
import com.huaweicloud.dws.client.exception.InvalidException;
import com.huaweicloud.dws.client.model.OperationType;
import com.huaweicloud.dws.client.model.TableSchema;
import com.huaweicloud.dws.client.util.AssertUtil;

/**
 * @ProjectName: dws-connector
 * @ClassName: Delete
 * @Description:
 * @Date: 2023/1/14 20:02
 * @Version: 1.0
 */
public class Delete extends Operate {
    public Delete(TableSchema schema, ActionCollector collector) {
        super(schema, collector, OperationType.DELETE);
    }

    @Override
    public Operate setObject(String columnName, Object value, boolean ignoreUpdate) {
        AssertUtil.isTrue(record.getTableSchema().isPrimaryKey(columnName), new InvalidException("column not primary key " + columnName));
        return super.setObject(columnName, value, ignoreUpdate);
    }

    @Override
    public void commit() throws DwsClientException {
        checkPkFull();
        super.commit();
    }

    /**
     * 同步提交
     */
    @Override
    public void syncCommit() throws DwsClientException {
        checkPkFull();
        super.syncCommit();
    }

    /**
     * 检查主键是否完全填充
     */
    protected void checkPkFull() {
        for (String keyName : record.getTableSchema().getPrimaryKeyNames()) {
            AssertUtil.isTrue(record.isSet(keyName), new InvalidException("delete must set primary key " + keyName));
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy