From c604c2de98447af15efaf594cf2940aa78203b67 Mon Sep 17 00:00:00 2001
From: hebo <13216192626@163.com>
Date: 星期一, 13 九月 2021 21:21:19 +0800
Subject: [PATCH] fix 代码生成-当表未设置主键时第一个字段重复生成
---
ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 95 insertions(+), 11 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
index 5c56edd..2d3cdbf 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
@@ -1,38 +1,122 @@
package com.ruoyi.framework.config;
-import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.baomidou.mybatisplus.core.injector.AbstractMethod;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
+import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.ruoyi.common.core.mybatisplus.methods.InsertAll;
+import com.ruoyi.framework.mybatisplus.CreateAndUpdateMetaObjectHandler;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
+import java.util.List;
+
+/**
+ * mybatis-plus閰嶇疆绫�
+ *
+ * @author Lion Li
+ */
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
+// 鎸囧畾瑕佹壂鎻忕殑Mapper绫荤殑鍖呯殑璺緞
+@MapperScan("${mybatis-plus.mapperPackage}")
public class MybatisPlusConfig {
+
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ // 鍒嗛〉鎻掍欢
+ interceptor.addInnerInterceptor(paginationInnerInterceptor());
+ // 涔愯閿佹彃浠�
+ interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
+ // 闃绘柇鎻掍欢
+// interceptor.addInnerInterceptor(blockAttackInnerInterceptor());
+ return interceptor;
+ }
/**
* 鍒嗛〉鎻掍欢锛岃嚜鍔ㄨ瘑鍒暟鎹簱绫诲瀷
+ * https://baomidou.com/guide/interceptor-pagination.html
*/
- @Bean
- public PaginationInterceptor paginationInterceptor() {
- return new PaginationInterceptor();
+ public PaginationInnerInterceptor paginationInnerInterceptor() {
+ PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+ // 璁剧疆鏈�澶у崟椤甸檺鍒舵暟閲忥紝榛樿 500 鏉★紝-1 涓嶅彈闄愬埗
+ paginationInnerInterceptor.setMaxLimit(-1L);
+ // 鍒嗛〉鍚堢悊鍖�
+ paginationInnerInterceptor.setOverflow(true);
+ return paginationInnerInterceptor;
}
/**
* 涔愯閿佹彃浠�
+ * https://baomidou.com/guide/interceptor-optimistic-locker.html
*/
- @Bean
- public OptimisticLockerInterceptor optimisticLockerInterceptor() {
- return new OptimisticLockerInterceptor();
+ public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
+ return new OptimisticLockerInnerInterceptor();
}
/**
* 濡傛灉鏄鍏ㄨ〃鐨勫垹闄ゆ垨鏇存柊鎿嶄綔锛屽氨浼氱粓姝㈣鎿嶄綔
+ * https://baomidou.com/guide/interceptor-block-attack.html
+ */
+// public BlockAttackInnerInterceptor blockAttackInnerInterceptor() {
+// return new BlockAttackInnerInterceptor();
+// }
+
+ /**
+ * sql鎬ц兘瑙勮寖鎻掍欢(鍨冨溇SQL鎷︽埅)
+ * 濡傛湁闇�瑕佸彲浠ュ惎鐢�
+ */
+// public IllegalSQLInnerInterceptor illegalSQLInnerInterceptor() {
+// return new IllegalSQLInnerInterceptor();
+// }
+
+
+ /**
+ * 鑷畾涔変富閿瓥鐣�
+ * https://baomidou.com/guide/id-generator.html
+ */
+// @Bean
+// public IdentifierGenerator idGenerator() {
+// return new CustomIdGenerator();
+// }
+
+ /**
+ * 鍏冨璞″瓧娈靛~鍏呮帶鍒跺櫒
+ * https://baomidou.com/guide/auto-fill-metainfo.html
*/
@Bean
- public SqlExplainInterceptor sqlExplainInterceptor() {
- return new SqlExplainInterceptor();
+ public MetaObjectHandler metaObjectHandler() {
+ return new CreateAndUpdateMetaObjectHandler();
}
+ /**
+ * sql娉ㄥ叆鍣ㄩ厤缃�
+ * https://baomidou.com/guide/sql-injector.html
+ */
+ @Bean
+ public ISqlInjector sqlInjector() {
+ return new DefaultSqlInjector() {
+ @Override
+ public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {
+ List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
+ methodList.add(new InsertAll());
+ return methodList;
+ }
+ };
+ }
+
+ /**
+ * TenantLineInnerInterceptor 澶氱鎴锋彃浠�
+ * https://baomidou.com/guide/interceptor-tenant-line.html
+ * DynamicTableNameInnerInterceptor 鍔ㄦ�佽〃鍚嶆彃浠�
+ * https://baomidou.com/guide/interceptor-dynamic-table-name.html
+ */
+
}
--
Gitblit v1.9.3