MyBatis实体类中包含实体类的多个where条件的mapper.xml

<resultMap id="selectMetricListMap" type="com.copote.devops.brain.manager.bean.dto.MetricDto">
        <result column="metric_type_value" property="metricTypeValue"/>
        <result column="metric_template_value" property="metricTemplateValue"/>
        <result column="created_by" property="createdBy"/>
        <result column="created_time" property="createdTime"/>
        <result column="updated_by" property="updatedBy"/>
        <result column="updated_time" property="updatedTime"/>
        <association property="metricEntity" javaType="com.copote.devops.brain.manager.bean.entity.MetricEntity">
            <result column="metric_id" property="metricId"/>
            <result column="metric_name" property="metricName"/>
            <result column="external_metric_name" property="externalMetricName"/>
            <result column="metric_implication" property="metricImplication"/>
            <result column="metric_source" property="metricSource"/>
            <result column="metric_label_name" property="metricLabelName"/>
            <result column="label_name_sep" property="labelNameSep"/>
        </association>
    </resultMap>

    <select id="selectMetricList"
            parameterType="com.copote.devops.brain.manager.bean.dto.MetricDto"
            resultMap="selectMetricListMap">
        SELECT
        a.metric_id,
        a.metric_name,
        a.metric_label_name,
        a.label_name_sep,
        a.external_metric_name,
        a.metric_implication,
        a.metric_type_code,
        a.metric_template_code,
        a.metric_source,
        a.created_by,
        a.created_time,
        a.updated_by,
        a.updated_time,
        c.metric_type_value,
        d.instance_type_value AS metric_template_value
        FROM tb_metrics as a
        JOIN tb_metric_type_code AS c
        ON a.metric_type_code = c.metric_type_code
        JOIN tb_monitor_instance_type AS d
        ON a.metric_template_code = d.instance_type_code
        <where>
            <if test="metricDto != null">
                <if test="metricDto.metricEntity != null">
                    <if test="metricDto.metricEntity.metricName != null and metricDto.metricEntity.metricName != ''">
                        metric_name = #{metricDto.metricName}
                    </if>
                </if>
                <if test="metricDto.metricTemplateValue != null and metricDto.metricTemplateValue != ''">
                    instance_type_value = #{metricDto.metricTemplateValue}
                </if>
            </if>
        </where>
    </select>
public class MetricDto extends BaseEntity {

    @ApiModelProperty(value = "指标实体类", position = 11)
    private MetricEntity metricEntity;

    @ApiModelProperty(value = "指标类型码值", position = 5)
    private String metricTypeValue;

    @ApiModelProperty(value = "指标模板码值", position = 6)
    private String metricTemplateValue;

}
public class MetricEntity extends BaseEntity {

    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "指标ID", position = 1)
    private Integer metricId;

    /**
     * metricName是externalMetricName标准化后的指标,包括命名等标准化.
     * 比如从Zabbix或者Prometheus或者JMX等采集来的指标名称方式不同,造成命名冲突等.
     *
     * @see externalMetricName
     */
    @ApiModelProperty(value = "指标名称", position = 2)
    private String metricName;

    /**
     * metricUnit是externalMetricUnit经过换算过的指标单位.
     *
     * @see externalMetricUnit
     */
    @ApiModelProperty(value = "指标单位", position = 3)
    private String metricUnit;

    @ApiModelProperty(value = "指标单位含义")
    private String metricUnitMean;

    @ApiModelProperty(value = "指标单位类型")
    private String metricUnitType;

    /**
     * @see metricName
     */
    @ApiModelProperty(value = "外部指标名称", position = 4)
    private String externalMetricName;

    /**
     * 它是外部指标原生的单位,例如prometheus中指标单位都是标准单位.
     *
     * @see metricUnit
     */
    @ApiModelProperty(value = "外部指标单位", position = 5)
    private String externalMetricUnit;

    @ApiModelProperty(value = "外部指标单位含义")
    private String externalMetricUnitMean;

    @ApiModelProperty(value = "指标含义", position = 6)
    private String metricImplication;

    @ApiModelProperty(value = "指标类型编码", position = 7)
    private String metricTypeCode;

    @ApiModelProperty(value = "指标模板编码", position = 8)
    private Integer metricTemplateCode;

    @ApiModelProperty(value = "指标来源", position = 9)
    private String metricSource;

    /**
     * 有些指标没有标签(label),例如up指标,metricLabelName就为空.
     * 有些指标有标签(label),例如偏移量off_set{topic="test",partition="1"},metricLabelName为topic,partition
     * 标签名之间默认使用英文逗号隔开
     *
     * @see labelNameSep  标签名分隔符
     */
    @ApiModelProperty(value = "指标标签名", position = 10)
    private String metricLabelName;

    /**
     * 默认分隔符:英文逗号.
     *
     * @see metricLabelName
     */
    @ApiModelProperty(value = "指标标签名分隔符", position = 11)
    private String labelNameSep;

    @ApiModelProperty(value = "promql查询选择器", position = 12)
    private String promSelector;

    private Integer isDelete;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leboop-L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值