当前使用版本(必填,否则不予处理)
<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作为非删除值。