我使用的是mybatis-plus3.5.1版本 ,使用老版本的插件,轻则没效果,重则报错
旧版分页、旧版乐观锁(错误)
//旧版
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
新版分页与乐观锁
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@MapperScan("com.zhao.mapper")//扫描我们的mapper文件夹
@EnableTransactionManagement //事务控制
@Configuration //配置类
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//注册乐观锁插件
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
//分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
在新的版本中移除了逻辑删除的插件注入(意思就是不用写java代码了)
需要在application.yaml或者application.properties中加入一下字段就可以使用
# 配置日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 配置逻辑删除
global-config:
db-config:
logic-delete-value: 1 # 1 为逻辑删除后的字段
logic-not-delete-value: 0 # 0 为没有逻辑删除的字段
logic-delete-field: deleted #对应实体类的字段 写了这个在实体类中就不需要写注解了
实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
// 对应数据库中的主键 (uuid、自增id、雪花算法、redis、zookeeper)
// AUTO 是自增策略,在数据库中药开启自增
// NONE 是未设置主键
// INPUT 手动输入
// ASSIGN_ID 全局唯一id 雪花算法
// ASSIGN_UUID 全局唯一id uuid
@TableId(type = IdType.ASSIGN_ID) //这是默认的创造id的方法:雪花算法
private Long id;
@TableField(value = "`name`")
private String name;
private Integer age;
private String email;
//字段添加填充内容
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
//乐观锁 Version 注解
@Version
private Integer version;
// @TableLogic //逻辑删除注解 在yaml中配置了就不用写注解了
private Integer deleted;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74781.html