版本
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
非常抱歉,这不是你们的问题,我已经找到了问题的原因!!!