From f47d0647329f25e440b0bf9387ff87479f79b467 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Thu, 8 Jun 2023 15:51:08 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B5=8B=E8=AF=95=E9=9B=86=E5=90=88?= =?UTF-8?q?=E5=AD=90=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=94=AF=E6=8C=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mybatisflex/test/model/Role.java | 7 ++++- .../com/mybatisflex/test/model/UserVO.java | 9 +++--- .../test/mapper/UserMapperTest.java | 31 ++++++++++++++++--- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Role.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Role.java index 88d3a109..d6a1e97e 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Role.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Role.java @@ -26,7 +26,7 @@ import com.mybatisflex.annotation.Table; * @since 2023-06-07 */ @Table("tb_role") -public class Role { +public class Role implements Comparable { @Id private Integer roleId; @@ -65,4 +65,9 @@ public class Role { ", roleName='" + roleName + '\'' + '}'; } + + @Override + public int compareTo(Role o) { + return Integer.compare(this.roleId, o.roleId); + } } \ No newline at end of file diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO.java index e3f8cf59..a392157b 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO.java @@ -16,7 +16,8 @@ package com.mybatisflex.test.model; -import java.util.List; +import java.util.Collection; +import java.util.TreeSet; /** * 用户 VO 对象。 @@ -29,7 +30,7 @@ public class UserVO { private String userId; private String userName; - private List roleList; + private TreeSet roleList; public String getUserId() { return userId; @@ -47,11 +48,11 @@ public class UserVO { this.userName = userName; } - public List getRoleList() { + public Collection getRoleList() { return roleList; } - public void setRoleList(List roleList) { + public void setRoleList(TreeSet roleList) { this.roleList = roleList; } diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/UserMapperTest.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/UserMapperTest.java index 6b936daa..7a5487cd 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/UserMapperTest.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/UserMapperTest.java @@ -25,6 +25,7 @@ import org.springframework.boot.test.context.SpringBootTest; import java.util.List; +import static com.mybatisflex.core.query.QueryMethods.select; import static com.mybatisflex.test.model.table.GoodTableDef.GOOD; import static com.mybatisflex.test.model.table.OrderGoodTableDef.ORDER_GOOD; import static com.mybatisflex.test.model.table.OrderTableDef.ORDER; @@ -59,6 +60,31 @@ class UserMapperTest { System.err.println(userVO); } + @Test + void testFieldQuery() { + QueryWrapper queryWrapper = QueryWrapper.create() + .select(USER.USER_ID, USER.USER_NAME) + .from(USER.as("u")) + .where(USER.USER_ID.eq(3)); + System.out.println(queryWrapper.toSQL()); + List userVOs = userMapper.selectListByQueryAs(queryWrapper, UserVO.class, + fieldQueryBuilder -> fieldQueryBuilder + .field(UserVO::getRoleList) + .queryWrapper(user -> QueryWrapper.create() + .select() + .from(ROLE) + .where(ROLE.ROLE_ID.in( + select(USER_ROLE.ROLE_ID) + .from(USER_ROLE) + .where(USER_ROLE.USER_ID.eq(user.getUserId()) + ) + ) + ) + ) + ); + System.err.println(userVOs); + } + @Test void testSelectList() { QueryWrapper queryWrapper = QueryWrapper.create() @@ -66,12 +92,9 @@ class UserMapperTest { .from(USER.as("u")) .leftJoin(USER_ROLE).as("ur").on(USER_ROLE.USER_ID.eq(USER.USER_ID)) .leftJoin(ROLE).as("r").on(USER_ROLE.ROLE_ID.eq(ROLE.ROLE_ID)) - .where(USER.USER_ID.ge(2)); + .where(USER.USER_ID.eq(3)); System.out.println(queryWrapper.toSQL()); List userVOS = userMapper.selectListByQueryAs(queryWrapper, UserVO.class); -// List userVOS = userMapper.selectListByQueryAs(queryWrapper, UserVO1.class); -// List userVOS = userMapper.selectListByQueryAs(queryWrapper, UserVO2.class); -// List userVOS = userMapper.selectListByQueryAs(queryWrapper, UserVO3.class); userVOS.forEach(System.err::println); }