版本

MyBatis版本:3.5.5(mybatis-plus-boot-starter) SpringBoot版本:2.5.0

问题描述

你好,我在实体类中使用枚举类型的属性时,新增功能可以正常转化所需的 值到数据库中,但是修改功能却未生效。

使用使用@EnumValue注解

相关配置

我是通过 @EnumValue 来注解枚举属性的,在yml中并未进行通用枚举配置。以下是我枚举的定义及其MyBatis的配置:

mybatis-plus:
  configuration:
    # 开启驼峰转下划线(默认为true)
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      logic-delete-value: -1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 1 # 逻辑未删除值(默认为 0)
import cn.wlih.core.myAnnotate.ClassComment;
import cn.wlih.core.myAnnotate.VariableComment;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

@Getter
public enum TurnoverBoxState {

    IDLE(1, "闲置中"),
    IN_USE(2, "使用中"),
    DISCARDED(3, "废弃");

    TurnoverBoxState(Integer key, String display) {
        this.key = key;
        this.display = display;
    }

    @EnumValue
    private final Integer key;

    @JsonValue
    private final String display;

}

执行的SQL日志如下(其中 turnover_box_state 字段为以上定义的 TurnoverBoxState 枚举):

==>  Preparing: UPDATE sm_turnover_box SET rfid_code=?, turnover_box_name=?, turnover_box_volume=?, turnover_box_container=?, turnover_box_weight=?, turnover_box_state=?, turnover_box_remark=?, update_time=? WHERE id=? AND is_delete=1
==> Parameters: 44444(String), 4444(String), 44444(BigDecimal), 4444(BigDecimal), 44444(BigDecimal), 3(Integer), 444444(String), null, 1772995968170463200(Long)
<==    Updates: 0

Comment From: wanglhong

非常抱歉,这不是你们的问题,我已经找到了问题的原因!!!