Commit f9569f910f834ea960e7deb7c5368cf48e1f5ffd
1 parent
95159b02
切换 Mybatis-plus-join 依赖
Showing
7 changed files
with
19 additions
and
35 deletions
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 | ... | ... |