RelationHistoryTable.java

package com.mycim.valueobject.table;

import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.valueobject.bas.Relation;
import com.mycim.valueobject.bas.TransactionLog;

/**
 * @author yibing.liu
 * @version 1.0
 * @date 2021/4/15
 */
public class RelationHistoryTable extends SpecificTableDto {

    public RelationHistoryTable(String tableName, String selectTable, Relation relation,
                                TransactionLog transactionLog) {
        super.historyTableName = tableName;
        super.tableName = selectTable;
        super.transId = relation.getTransId();
        setInsertFields(relation, transactionLog);
    }

    @Override
    void setInsertFields(Relation relation, TransactionLog transactionLog) {
        addPrimaryKeyList(relation);
        addField("TRANS_USER_RRN", LocalContext.getUserRrn());//需要赋值的字段
        addField("TRANS_TIME", transactionLog.getTransStartTimestamp());
        addField("TRANS_RRN", transactionLog.getTransRrn());
        addField("TRANS_SEQUENCE", transactionLog.getTransSequence());
        addField("TRANS_ID", transactionLog.getTransId());
        //可通过Select主表插入的字段
        addFieldBySelectMainTable("SEQUENCE_NUMBER", "STATUS", "ATTRIBUTE_DATA_1", "ATTRIBUTE_DATA_2",
                                  "ATTRIBUTE_DATA_3", "ATTRIBUTE_DATA_4", "ATTRIBUTE_DATA_5", "ATTRIBUTE_DATA_6",
                                  "ATTRIBUTE_DATA_7");
    }

    @Override
    void setUpdateFields(Relation relation, TransactionLog transactionLog) {

    }

    @Override
    void setDeleteFields(Relation relation, TransactionLog transactionLog) {

    }

}