在 MyBatis Plus 中,逻辑删除可以通过在实体类中添加 `@TableLogic` 注解来实现。该注解的使用方式如下:```java
@Data
public class User {
private Long id;
private String name;
private Integer age;
@TableLogic
private Integer delFlag;
}
```
在 `@TableLogic` 注解中,可以指定逻辑删除的值,默认情况下为 1 表示已删除,0 表示未删除。当使用 MyBatis Plus 的删除方法时,会自动将该字段的值修改为逻辑删除的值,而不是进行物理删除。
例如,使用 MyBatis Plus 的 `deleteById` 方法删除记录时,会将对应记录的 `delFlag` 字段的值修改为逻辑删除的值。具体使用方式如下:
```java
@Autowired
private UserMapper userMapper;
public void deleteById(Long id) {
User user = new User();
user.setId(id);
user.setDelFlag(1);
userMapper.updateById(user);
}
```
在这个例子中,我们手动将 `delFlag` 字段的值设为 1,然后使用 `updateById` 方法更新记录的信息。这样做可以实现逻辑删除而不是物理删除。
在添加了 `@TableLogic` 注解后,你不需要在 Java 代码中做任何处理,MyBatis Plus 会自动将该字段视为逻辑删除字段进行处理。当你调用 MyBatis Plus 提供的删除方法时,它会自动将该字段的值修改为逻辑删除的值,而不是进行物理删除。例如,使用 MyBatis Plus 的 `deleteById` 方法删除记录时,会将对应记录的 `delFlag` 字段的值修改为逻辑删除的值。具体使用方式可以参考我上面给出的代码示例。