From 2f8ef0662e753876e83ffffd5f990968753bf51a Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Fri, 28 Jul 2023 12:15:33 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B5=8B=E8=AF=95=20Active=20Record=20?= =?UTF-8?q?=E8=81=94=E8=A1=A8=E6=9F=A5=E8=AF=A2=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 | 2 ++ .../java/com/mybatisflex/test/model/User.java | 17 +++++++++++++++-- .../test/mapper/ActiveRecordTest.java | 19 +++++++++++++++++++ 3 files changed, 36 insertions(+), 2 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 04a5fc7f..6a7b0825 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 @@ -16,6 +16,7 @@ package com.mybatisflex.test.model; +import com.mybatisflex.annotation.Column; import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.Table; @@ -36,6 +37,7 @@ public class Role implements Comparable { private String roleKey; private String roleName; + @Column(ignore = true) private List userVOS; public Integer getRoleId() { diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/User.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/User.java index 13b89f01..41d318df 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/User.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/User.java @@ -17,7 +17,9 @@ package com.mybatisflex.test.model; import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.RelationManyToMany; import com.mybatisflex.annotation.Table; +import com.mybatisflex.core.activerecord.Model; import java.util.List; @@ -29,15 +31,26 @@ import java.util.List; */ @Table("tb_user") -public class User { +public class User extends Model { @Id private Integer userId; private String userName; private String password; - //@Column(ignore = true) + + @RelationManyToMany( + selfField = "userId", + targetField = "roleId", + joinTable = "tb_user_role", + joinSelfColumn = "user_id", + joinTargetColumn = "role_id" + ) private List roleList; + public static User create() { + return new User(); + } + public Integer getUserId() { return userId; } diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/ActiveRecordTest.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/ActiveRecordTest.java index 61d45f33..5b892129 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/ActiveRecordTest.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/mapper/ActiveRecordTest.java @@ -19,11 +19,15 @@ package com.mybatisflex.test.mapper; import com.mybatisflex.core.mybatis.Mappers; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.test.model.Good; +import com.mybatisflex.test.model.User; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import static com.mybatisflex.test.model.table.GoodTableDef.GOOD; +import static com.mybatisflex.test.model.table.RoleTableDef.ROLE; +import static com.mybatisflex.test.model.table.UserRoleTableDef.USER_ROLE; +import static com.mybatisflex.test.model.table.UserTableDef.USER; /** * @author 王帅 @@ -105,4 +109,19 @@ class ActiveRecordTest { .forEach(System.out::println); } + @Test + void testRelation() { + User user1 = User.create().select(USER.ALL_COLUMNS, ROLE.ALL_COLUMNS) + .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.eq(2)) + .one(); + + User user2 = User.create() + .where(USER.USER_ID.eq(2)) + .oneWithRelations(); + + Assertions.assertEquals(user1.toString(), user2.toString()); + } + }