当前使用版本(必填,否则不予处理)

<dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.4.1</version>
    <scope>compile</scope>
</dependency>

该问题是如何引起的?(确定最新版也有问题再提!!!)

对integer类型字段指定了非0的delval值,但没有生效,执行的依旧是0。

重现步骤(如果有就写完整)

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("user")
public class User implements Serializable {
    @TableId(value = "user_id", type = IdType.AUTO)
    private Long userId;

    @TableField("name")
    private String name;

    // 其实我是想指定0为删除值
    @TableLogic(delval = "7")
    @TableField("latest_status")
    private Integer LatestStatus;
}
mybatis-plus:
  global-config:
    db-config:
#      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
#      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
      update-strategy: not_null
  type-handlers-package: com.xxxxx.commons.mybatisplus.type
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

执行

userMapper.selectById(userId);

报错信息

执行脚本为:

SELECT name, latest_status FROM user WHERE user_id = ? AND latest_status = 0;

期望执行的脚本为:

SELECT name, latest_status FROM user WHERE user_id = ? AND latest_status != 7;

Comment From: miemieYaho

delval 是删除值

Comment From: DoneSpeak

@miemieYaho

delval 是删除值

那是否支持只定义删除值,其他值均为非删除值呢?比如我上面的情况存在多种非删除值,没法在value中一一定义呢。但删除值是非常明确的。

再或者我做了一个将name和deleted作为一个唯一索引,但删除用户的时候,会将deleted = id,而deleted = 0时候为非删除值。从而确保name在非删除用户中唯一。

另外,如果定义了删除值为0,执行的sql还是会将0作为非删除值。