Commit f9569f910f834ea960e7deb7c5368cf48e1f5ffd

Authored by wangzhs
1 parent 95159b02

切换 Mybatis-plus-join 依赖

yudao-dependencies/pom.xml
... ... @@ -26,7 +26,7 @@
26 26 <mybatis-plus.version>3.5.3.1</mybatis-plus.version>
27 27 <mybatis-plus-generator.version>3.5.3.1</mybatis-plus-generator.version>
28 28 <dynamic-datasource.version>3.6.1</dynamic-datasource.version>
29   - <mybatis-plus-join.version>1.3.4</mybatis-plus-join.version>
  29 + <mybatis-plus-join-boot-starter.version>1.4.3.1</mybatis-plus-join-boot-starter.version>
30 30 <redisson.version>3.18.0</redisson.version>
31 31 <!-- 服务保障相关 -->
32 32 <lock4j.version>2.2.3</lock4j.version>
... ... @@ -211,9 +211,9 @@
211 211 </dependency>
212 212  
213 213 <dependency>
214   - <groupId>icu.mhb</groupId>
215   - <artifactId>mybatis-plus-join</artifactId>
216   - <version>${mybatis-plus-join.version}</version>
  214 + <groupId>com.github.yulichang</groupId>
  215 + <artifactId>mybatis-plus-join-boot-starter</artifactId>
  216 + <version>${mybatis-plus-join-boot-starter.version}</version>
217 217 </dependency>
218 218  
219 219 <dependency>
... ...
yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml
... ... @@ -60,8 +60,8 @@
60 60 </dependency>
61 61  
62 62 <dependency>
63   - <groupId>icu.mhb</groupId>
64   - <artifactId>mybatis-plus-join</artifactId>
  63 + <groupId>com.github.yulichang</groupId>
  64 + <artifactId>mybatis-plus-join-boot-starter</artifactId>
65 65 </dependency>
66 66  
67 67 </dependencies>
... ...
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java
... ... @@ -5,14 +5,12 @@ import cn.iocoder.yudao.framework.mybatis.core.handler.DefaultDBFieldHandler;
5 5 import com.baomidou.mybatisplus.annotation.DbType;
6 6 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
7 7 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
8   -import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
9 8 import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
10 9 import com.baomidou.mybatisplus.extension.incrementer.KingbaseKeyGenerator;
11 10 import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator;
12 11 import com.baomidou.mybatisplus.extension.incrementer.PostgreKeyGenerator;
13 12 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
14 13 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
15   -import icu.mhb.mybatisplus.plugln.injector.JoinDefaultSqlInjector;
16 14 import org.apache.ibatis.annotations.Mapper;
17 15 import org.mybatis.spring.annotation.MapperScan;
18 16 import org.springframework.boot.autoconfigure.AutoConfiguration;
... ... @@ -43,11 +41,6 @@ public class YudaoMybatisAutoConfiguration {
43 41 }
44 42  
45 43 @Bean
46   - public DefaultSqlInjector defaultSqlInjector() {
47   - return new JoinDefaultSqlInjector(); // 使用Mybaits Plus Join定义的SQL注入器
48   - }
49   -
50   - @Bean
51 44 @ConditionalOnProperty(prefix = "mybatis-plus.global-config.db-config", name = "id-type", havingValue = "INPUT")
52 45 public IKeyGenerator keyGenerator(ConfigurableEnvironment environment) {
53 46 DbType dbType = IdTypeEnvironmentPostProcessor.getDbType(environment);
... ...
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java
... ... @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
9 9 import com.baomidou.mybatisplus.core.metadata.IPage;
10 10 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
11 11 import com.baomidou.mybatisplus.extension.toolkit.Db;
12   -import icu.mhb.mybatisplus.plugln.base.mapper.JoinBaseMapper;
  12 +import com.github.yulichang.base.MPJBaseMapper;
13 13 import org.apache.ibatis.annotations.Param;
14 14  
15 15 import java.util.Collection;
... ... @@ -17,10 +17,10 @@ import java.util.List;
17 17  
18 18 /**
19 19 * 在 MyBatis Plus 的 BaseMapper 的基础上拓展,提供更多的能力
20   - *
21   - * 为什么继承 JoinBaseMapper 接口?支持 MyBatis Plus 多表 Join 的能力。
  20 + * <p>
  21 + * 为什么继承 MPJBaseMapper 接口?支持 MyBatis Plus 多表 Join 的能力。
22 22 */
23   -public interface BaseMapperX<T> extends JoinBaseMapper<T> {
  23 +public interface BaseMapperX<T> extends MPJBaseMapper<T> {
24 24  
25 25 default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
26 26 // MyBatis Plus 查询
... ...
yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbUnitTest.java
... ... @@ -5,8 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration;
5 5 import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration;
6 6 import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
7 7 import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
8   -import icu.mhb.mybatisplus.plugln.interceptor.JoinInterceptor;
9   -import icu.mhb.mybatisplus.plugln.interceptor.JoinInterceptorConfig;
  8 +import com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration;
10 9 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
11 10 import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
12 11 import org.springframework.boot.test.context.SpringBootTest;
... ... @@ -36,9 +35,7 @@ public class BaseDbUnitTest {
36 35 // MyBatis 配置类
37 36 YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类
38 37 MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类
39   - // TODO @升平:看看有没可能去掉下面两个类
40   - JoinInterceptor.class, // MyBatis 的Join配置类
41   - JoinInterceptorConfig.class, // MyBatis 的Join配置类
  38 + MybatisPlusJoinAutoConfiguration.class, // MyBatis 的Join配置类
42 39 })
43 40 public static class Application {
44 41 }
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
... ... @@ -10,8 +10,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
10 10 import com.baomidou.mybatisplus.annotation.TableId;
11 11 import com.baomidou.mybatisplus.annotation.TableName;
12 12 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
13   -import icu.mhb.mybatisplus.plugln.annotations.JoinField;
14   -import icu.mhb.mybatisplus.plugln.constant.RelevancyType;
15 13 import lombok.*;
16 14 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
17 15  
... ... @@ -100,9 +98,6 @@ public class AdminUserDO extends TenantBaseDO {
100 98 /**
101 99 * 用户所属部门
102 100 */
103   - @JoinField(masterModelClass = AdminUserDO.class, masterModelField = "deptId",
104   - sunModelClass = DeptDO.class, sunModelField = "id",
105   - relevancyType = RelevancyType.ONT_TO_ONE, sunAlias = "d")
106 101 @TableField(exist = false, typeHandler = FastjsonTypeHandler.class)
107 102 private DeptDO dept;
108 103  
... ...
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java
... ... @@ -24,7 +24,7 @@ import cn.iocoder.yudao.module.system.service.dept.DeptService;
24 24 import cn.iocoder.yudao.module.system.service.dept.PostService;
25 25 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
26 26 import cn.iocoder.yudao.module.system.service.tenant.TenantService;
27   -import icu.mhb.mybatisplus.plugln.extend.Joins;
  27 +import com.github.yulichang.wrapper.MPJLambdaWrapper;
28 28 import org.junit.jupiter.api.Test;
29 29 import org.mockito.stubbing.Answer;
30 30 import org.springframework.boot.test.mock.mockito.MockBean;
... ... @@ -776,7 +776,6 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
776 776  
777 777 @Test
778 778 public void testSelectUserIncludeDept_success() {
779   - // 需设置 application-unit-test.yaml 文件中 spring.main.lazy-initialization: false
780 779  
781 780 // 准备部门数据
782 781 DeptDO dept = new DeptDO();
... ... @@ -795,13 +794,13 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
795 794 // 调用
796 795 Long userId = userService.createUser(reqVO);
797 796  
798   - // 断言
799   - AdminUserDO user = Joins.of(AdminUserDO.class)
  797 + MPJLambdaWrapper<AdminUserDO> wrapper = new MPJLambdaWrapper<>(AdminUserDO.class)
  798 + .selectAll(AdminUserDO.class)
  799 + .selectAssociation(DeptDO.class, AdminUserDO::getDept)
800 800 .leftJoin(DeptDO.class, DeptDO::getId, AdminUserDO::getDeptId)
801   - .oneToOneSelect(AdminUserDO::getDept, DeptDO.class)
802   - .end()
803   - .eq(AdminUserDO::getId, userId)
804   - .joinGetOne(AdminUserDO.class);
  801 + .eq(AdminUserDO::getId, userId);
  802 + AdminUserDO user = userMapper.selectJoinOne(AdminUserDO.class, wrapper);
  803 +
805 804 System.out.println("=========>" + user);
806 805 }
807 806  
... ...