mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 09:08:24 +08:00
commit
b5c0426768
@ -19,6 +19,8 @@ package com.mybatisflex.test.model;
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 商品。
|
||||
*
|
||||
@ -60,9 +62,41 @@ public class Good {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Good{" +
|
||||
"goodId=" + goodId +
|
||||
", name='" + name + '\'' +
|
||||
", price=" + price +
|
||||
'}';
|
||||
"goodId=" + goodId +
|
||||
", name='" + name + '\'' +
|
||||
", price=" + price +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Good good = (Good) o;
|
||||
|
||||
if (Double.compare(good.price, price) != 0) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(goodId, good.goodId)) {
|
||||
return false;
|
||||
}
|
||||
return Objects.equals(name, good.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result;
|
||||
long temp;
|
||||
result = goodId != null ? goodId.hashCode() : 0;
|
||||
result = 31 * result + (name != null ? name.hashCode() : 0);
|
||||
temp = Double.doubleToLongBits(price);
|
||||
result = 31 * result + (int) (temp ^ (temp >>> 32));
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
|
||||
* <p>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.mybatisflex.test.model;
|
||||
|
||||
import com.mybatisflex.annotation.Table;
|
||||
|
||||
/**
|
||||
* @author 王帅
|
||||
* @since 2023-07-12
|
||||
*/
|
||||
@Table("tb_id_card")
|
||||
public class IdCard {
|
||||
|
||||
private Integer id;
|
||||
private String idNumber;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getIdNumber() {
|
||||
return idNumber;
|
||||
}
|
||||
|
||||
public void setIdNumber(String idNumber) {
|
||||
this.idNumber = idNumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "IdCard{" +
|
||||
"id=" + id +
|
||||
", IdNumber='" + idNumber + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
}
|
||||
@ -16,8 +16,11 @@
|
||||
|
||||
package com.mybatisflex.test.model;
|
||||
|
||||
import com.mybatisflex.annotation.RelationManyToMany;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 订单信息。
|
||||
@ -30,6 +33,13 @@ public class OrderInfo {
|
||||
private Integer orderId;
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@RelationManyToMany(
|
||||
selfField = "orderId",
|
||||
targetField = "goodId",
|
||||
joinTable = "tb_order_good",
|
||||
joinSelfColumn = "order_id",
|
||||
joinTargetColumn = "good_id"
|
||||
)
|
||||
private List<Good> goodList;
|
||||
|
||||
public Integer getOrderId() {
|
||||
@ -59,9 +69,38 @@ public class OrderInfo {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "OrderInfo{" +
|
||||
"orderId=" + orderId +
|
||||
", createTime=" + createTime +
|
||||
", goodList=" + goodList +
|
||||
'}';
|
||||
"orderId=" + orderId +
|
||||
", createTime=" + createTime +
|
||||
", goodList=" + goodList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
OrderInfo orderInfo = (OrderInfo) o;
|
||||
|
||||
if (!Objects.equals(orderId, orderInfo.orderId)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(createTime, orderInfo.createTime)) {
|
||||
return false;
|
||||
}
|
||||
return Objects.equals(goodList, orderInfo.goodList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = orderId != null ? orderId.hashCode() : 0;
|
||||
result = 31 * result + (createTime != null ? createTime.hashCode() : 0);
|
||||
result = 31 * result + (goodList != null ? goodList.hashCode() : 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -20,6 +20,7 @@ import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 角色。
|
||||
@ -72,14 +73,47 @@ public class Role implements Comparable<Role> {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Role{" +
|
||||
"roleId=" + roleId +
|
||||
", roleKey='" + roleKey + '\'' +
|
||||
", roleName='" + roleName + '\'' +
|
||||
'}';
|
||||
"roleId=" + roleId +
|
||||
", roleKey='" + roleKey + '\'' +
|
||||
", roleName='" + roleName + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Role o) {
|
||||
return Integer.compare(this.roleId, o.roleId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Role role = (Role) o;
|
||||
|
||||
if (!Objects.equals(roleId, role.roleId)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(roleKey, role.roleKey)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(roleName, role.roleName)) {
|
||||
return false;
|
||||
}
|
||||
return Objects.equals(userVOS, role.userVOS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = roleId != null ? roleId.hashCode() : 0;
|
||||
result = 31 * result + (roleKey != null ? roleKey.hashCode() : 0);
|
||||
result = 31 * result + (roleName != null ? roleName.hashCode() : 0);
|
||||
result = 31 * result + (userVOS != null ? userVOS.hashCode() : 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -16,7 +16,11 @@
|
||||
|
||||
package com.mybatisflex.test.model;
|
||||
|
||||
import com.mybatisflex.annotation.Column;
|
||||
import com.mybatisflex.annotation.RelationManyToMany;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 用户信息。
|
||||
@ -29,8 +33,26 @@ public class UserInfo {
|
||||
private Integer userId;
|
||||
private String userName;
|
||||
private String password;
|
||||
@Column(ignore = true)
|
||||
private String idNumber;
|
||||
|
||||
@RelationManyToMany(
|
||||
selfField = "userId",
|
||||
targetField = "roleId",
|
||||
joinTable = "tb_user_role",
|
||||
joinSelfColumn = "user_id",
|
||||
joinTargetColumn = "role_id"
|
||||
)
|
||||
private List<Role> roleList;
|
||||
|
||||
@RelationManyToMany(
|
||||
selfField = "userId",
|
||||
targetField = "orderId",
|
||||
targetTable = "tb_order",
|
||||
joinTable = "tb_user_order",
|
||||
joinSelfColumn = "user_id",
|
||||
joinTargetColumn = "order_id"
|
||||
)
|
||||
private List<OrderInfo> orderInfoList;
|
||||
|
||||
public Integer getUserId() {
|
||||
@ -57,6 +79,14 @@ public class UserInfo {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getIdNumber() {
|
||||
return idNumber;
|
||||
}
|
||||
|
||||
public void setIdNumber(String idNumber) {
|
||||
this.idNumber = idNumber;
|
||||
}
|
||||
|
||||
public List<Role> getRoleList() {
|
||||
return roleList;
|
||||
}
|
||||
@ -76,11 +106,53 @@ public class UserInfo {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UserInfo{" +
|
||||
"userId=" + userId +
|
||||
", userName='" + userName + '\'' +
|
||||
", password='" + password + '\'' +
|
||||
", roleList=" + roleList +
|
||||
", orderInfoList=" + orderInfoList +
|
||||
'}';
|
||||
"userId=" + userId +
|
||||
", userName='" + userName + '\'' +
|
||||
", password='" + password + '\'' +
|
||||
", idNumber='" + idNumber + '\'' +
|
||||
", roleList=" + roleList +
|
||||
", orderInfoList=" + orderInfoList +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
UserInfo userInfo = (UserInfo) o;
|
||||
|
||||
if (!Objects.equals(userId, userInfo.userId)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(userName, userInfo.userName)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(password, userInfo.password)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(idNumber, userInfo.idNumber)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(roleList, userInfo.roleList)) {
|
||||
return false;
|
||||
}
|
||||
return Objects.equals(orderInfoList, userInfo.orderInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = userId != null ? userId.hashCode() : 0;
|
||||
result = 31 * result + (userName != null ? userName.hashCode() : 0);
|
||||
result = 31 * result + (password != null ? password.hashCode() : 0);
|
||||
result = 31 * result + (idNumber != null ? idNumber.hashCode() : 0);
|
||||
result = 31 * result + (roleList != null ? roleList.hashCode() : 0);
|
||||
result = 31 * result + (orderInfoList != null ? orderInfoList.hashCode() : 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,19 +1,78 @@
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_account
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_account`;
|
||||
CREATE TABLE `tb_account`
|
||||
(
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`age` int NULL DEFAULT NULL,
|
||||
`birthday` datetime NULL DEFAULT NULL,
|
||||
`gender` int NULL DEFAULT NULL,
|
||||
`is_delete` tinyint(3) UNSIGNED ZEROFILL NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 5
|
||||
CHARACTER SET = utf8mb4
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_account
|
||||
-- ----------------------------
|
||||
INSERT INTO `tb_account`
|
||||
VALUES (1, '张三123', 19, '2020-01-11 00:00:00', NULL, 000);
|
||||
INSERT INTO `tb_account`
|
||||
VALUES (2, '李四', 19, '2021-03-21 00:00:00', NULL, 000);
|
||||
INSERT INTO `tb_account`
|
||||
VALUES (5, '王五', 18, '2023-07-04 15:00:26', NULL, 000);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_article
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_article`;
|
||||
CREATE TABLE `tb_article`
|
||||
(
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`account_id` int NULL DEFAULT NULL,
|
||||
`title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||||
`is_delete` int NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 3
|
||||
CHARACTER SET = utf8mb4
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_article
|
||||
-- ----------------------------
|
||||
INSERT INTO `tb_article`
|
||||
VALUES (1, 1, '标题1', '内容1', 0);
|
||||
INSERT INTO `tb_article`
|
||||
VALUES (2, 2, '标题2', '内容2', 0);
|
||||
INSERT INTO `tb_article`
|
||||
VALUES (3, 1, '标题3', '内容3', 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_good
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_good`;
|
||||
CREATE TABLE `tb_good`
|
||||
(
|
||||
`good_id` int NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
|
||||
`price` decimal(10, 2) NULL DEFAULT NULL,
|
||||
`good_id` int NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`price` decimal(10, 2) NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`good_id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 10
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_good
|
||||
@ -39,6 +98,53 @@ VALUES (9, '化学学科知识与教学能力(高中)', 28.00);
|
||||
INSERT INTO `tb_good`
|
||||
VALUES (10, '近代化学导论', 67.00);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_id_card
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_id_card`;
|
||||
CREATE TABLE `tb_id_card`
|
||||
(
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`id_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
CHARACTER SET = utf8mb4
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_id_card
|
||||
-- ----------------------------
|
||||
INSERT INTO `tb_id_card`
|
||||
VALUES (1, 'F281C807-C40B-472D-82F5-6130199C6328');
|
||||
INSERT INTO `tb_id_card`
|
||||
VALUES (2, '6176E9AD-36EF-4201-A5F7-CCE89B254952');
|
||||
INSERT INTO `tb_id_card`
|
||||
VALUES (3, 'A038E6EA-1FDE-4191-AA41-06F78E91F6C2');
|
||||
INSERT INTO `tb_id_card`
|
||||
VALUES (4, 'A33E8BAA-93F2-4E28-A161-15CF7D0AE6D0');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_inner
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_inner`;
|
||||
CREATE TABLE `tb_inner`
|
||||
(
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 2
|
||||
CHARACTER SET = utf8mb4
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_inner
|
||||
-- ----------------------------
|
||||
INSERT INTO `tb_inner`
|
||||
VALUES (2, 'inner type');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_order
|
||||
-- ----------------------------
|
||||
@ -49,8 +155,10 @@ CREATE TABLE `tb_order`
|
||||
`create_time` datetime NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`order_id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 6
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_order
|
||||
@ -78,7 +186,8 @@ CREATE TABLE `tb_order_good`
|
||||
`good_id` int NOT NULL
|
||||
) ENGINE = InnoDB
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_order_good
|
||||
@ -110,19 +219,42 @@ VALUES (6, 9);
|
||||
INSERT INTO `tb_order_good`
|
||||
VALUES (6, 10);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_outer
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_outer`;
|
||||
CREATE TABLE `tb_outer`
|
||||
(
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 1
|
||||
CHARACTER SET = utf8mb4
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_outer
|
||||
-- ----------------------------
|
||||
INSERT INTO `tb_outer`
|
||||
VALUES (1, 'outer 01');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_role
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_role`;
|
||||
CREATE TABLE `tb_role`
|
||||
(
|
||||
`role_id` int NOT NULL AUTO_INCREMENT,
|
||||
`role_key` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
|
||||
`role_name` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
|
||||
`role_id` int NOT NULL AUTO_INCREMENT,
|
||||
`role_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`role_id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 5
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_role
|
||||
@ -142,13 +274,15 @@ VALUES (4, 'admin', '管理员用户');
|
||||
DROP TABLE IF EXISTS `tb_user`;
|
||||
CREATE TABLE `tb_user`
|
||||
(
|
||||
`user_id` int NOT NULL AUTO_INCREMENT,
|
||||
`user_name` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
|
||||
`password` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
|
||||
`user_id` int NOT NULL AUTO_INCREMENT,
|
||||
`user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`user_id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
AUTO_INCREMENT = 1
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_user
|
||||
@ -172,7 +306,8 @@ CREATE TABLE `tb_user_order`
|
||||
`order_id` int NOT NULL
|
||||
) ENGINE = InnoDB
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_user_order
|
||||
@ -200,7 +335,8 @@ CREATE TABLE `tb_user_role`
|
||||
`role_id` int NOT NULL
|
||||
) ENGINE = InnoDB
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
COLLATE = utf8mb4_0900_ai_ci
|
||||
ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of tb_user_role
|
||||
@ -228,30 +364,4 @@ VALUES (4, 4);
|
||||
INSERT INTO `tb_user_role`
|
||||
VALUES (5, 1);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_outer
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_outer`;
|
||||
CREATE TABLE `tb_outer`
|
||||
(
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_inner
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_inner`;
|
||||
CREATE TABLE `tb_inner`
|
||||
(
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(255) CHARACTER SET utf8mb4 NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
CHARACTER SET = utf8mb4
|
||||
ROW_FORMAT = Dynamic;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
@ -19,6 +19,7 @@ package com.mybatisflex.test.mapper;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.test.model.*;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
@ -27,6 +28,7 @@ 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.IdCardTableDef.ID_CARD;
|
||||
import static com.mybatisflex.test.model.table.OrderGoodTableDef.ORDER_GOOD;
|
||||
import static com.mybatisflex.test.model.table.OrderTableDef.ORDER;
|
||||
import static com.mybatisflex.test.model.table.RoleTableDef.ROLE;
|
||||
@ -48,11 +50,11 @@ class UserMapperTest {
|
||||
@Test
|
||||
void testSelectOne() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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.eq(1));
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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.eq(1));
|
||||
System.out.println(queryWrapper.toSQL());
|
||||
// UserVO userVO = userMapper.selectOneByQueryAs(queryWrapper, UserVO.class);
|
||||
// UserVO1 userVO = userMapper.selectOneByQueryAs(queryWrapper, UserVO1.class);
|
||||
@ -64,24 +66,24 @@ class UserMapperTest {
|
||||
@Test
|
||||
void testFieldQuery() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.USER_ID, USER.USER_NAME)
|
||||
.from(USER.as("u"))
|
||||
.where(USER.USER_ID.eq(3));
|
||||
.select(USER.USER_ID, USER.USER_NAME)
|
||||
.from(USER.as("u"))
|
||||
.where(USER.USER_ID.eq(3));
|
||||
System.out.println(queryWrapper.toSQL());
|
||||
List<UserVO> 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())
|
||||
)
|
||||
)
|
||||
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);
|
||||
}
|
||||
@ -89,11 +91,11 @@ class UserMapperTest {
|
||||
@Test
|
||||
void testSelectList() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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.eq(3));
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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.eq(3));
|
||||
System.out.println(queryWrapper.toSQL());
|
||||
List<UserVO> userVOS = userMapper.selectListByQueryAs(queryWrapper, UserVO.class);
|
||||
userVOS.forEach(System.err::println);
|
||||
@ -110,27 +112,64 @@ class UserMapperTest {
|
||||
@Test
|
||||
void testComplexSelectList() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.ALL_COLUMNS, ROLE.ALL_COLUMNS, ORDER.ALL_COLUMNS, GOOD.ALL_COLUMNS)
|
||||
.from(USER.as("u"))
|
||||
.leftJoin(USER_ROLE).as("ur").on(USER.USER_ID.eq(USER_ROLE.USER_ID))
|
||||
.leftJoin(ROLE).as("r").on(ROLE.ROLE_ID.eq(USER_ROLE.ROLE_ID))
|
||||
.leftJoin(USER_ORDER).as("uo").on(USER.USER_ID.eq(USER_ORDER.USER_ID))
|
||||
.leftJoin(ORDER).as("o").on(ORDER.ORDER_ID.eq(USER_ORDER.ORDER_ID))
|
||||
.leftJoin(ORDER_GOOD).as("og").on(ORDER.ORDER_ID.eq(ORDER_GOOD.ORDER_ID))
|
||||
.leftJoin(GOOD).as("g").on(GOOD.GOOD_ID.eq(ORDER_GOOD.GOOD_ID));
|
||||
.select(USER.ALL_COLUMNS, ID_CARD.ID_NUMBER, ROLE.ALL_COLUMNS, ORDER.ALL_COLUMNS, GOOD.ALL_COLUMNS)
|
||||
.from(USER.as("u"))
|
||||
.leftJoin(ID_CARD).as("i").on(USER.USER_ID.eq(ID_CARD.ID))
|
||||
.leftJoin(USER_ROLE).as("ur").on(USER.USER_ID.eq(USER_ROLE.USER_ID))
|
||||
.leftJoin(ROLE).as("r").on(ROLE.ROLE_ID.eq(USER_ROLE.ROLE_ID))
|
||||
.leftJoin(USER_ORDER).as("uo").on(USER.USER_ID.eq(USER_ORDER.USER_ID))
|
||||
.leftJoin(ORDER).as("o").on(ORDER.ORDER_ID.eq(USER_ORDER.ORDER_ID))
|
||||
.leftJoin(ORDER_GOOD).as("og").on(ORDER.ORDER_ID.eq(ORDER_GOOD.ORDER_ID))
|
||||
.leftJoin(GOOD).as("g").on(GOOD.GOOD_ID.eq(ORDER_GOOD.GOOD_ID));
|
||||
System.err.println(queryWrapper.toSQL());
|
||||
List<UserInfo> userInfos = userMapper.selectListByQueryAs(queryWrapper, UserInfo.class);
|
||||
userInfos.forEach(System.err::println);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testComplexSelectListRelations() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.ALL_COLUMNS, ID_CARD.ID_NUMBER)
|
||||
.from(USER.as("u"))
|
||||
.leftJoin(ID_CARD).as("i").on(USER.USER_ID.eq(ID_CARD.ID));
|
||||
List<UserInfo> userInfos = userMapper.selectListWithRelationsByQueryAs(queryWrapper, UserInfo.class);
|
||||
userInfos.forEach(System.err::println);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testEquals() {
|
||||
QueryWrapper queryWrapper1 = QueryWrapper.create()
|
||||
.select(USER.ALL_COLUMNS, ID_CARD.ID_NUMBER, ROLE.ALL_COLUMNS, ORDER.ALL_COLUMNS, GOOD.ALL_COLUMNS)
|
||||
.from(USER.as("u"))
|
||||
.leftJoin(ID_CARD).as("i").on(USER.USER_ID.eq(ID_CARD.ID))
|
||||
.leftJoin(USER_ROLE).as("ur").on(USER.USER_ID.eq(USER_ROLE.USER_ID))
|
||||
.leftJoin(ROLE).as("r").on(ROLE.ROLE_ID.eq(USER_ROLE.ROLE_ID))
|
||||
.leftJoin(USER_ORDER).as("uo").on(USER.USER_ID.eq(USER_ORDER.USER_ID))
|
||||
.leftJoin(ORDER).as("o").on(ORDER.ORDER_ID.eq(USER_ORDER.ORDER_ID))
|
||||
.leftJoin(ORDER_GOOD).as("og").on(ORDER.ORDER_ID.eq(ORDER_GOOD.ORDER_ID))
|
||||
.leftJoin(GOOD).as("g").on(GOOD.GOOD_ID.eq(ORDER_GOOD.GOOD_ID))
|
||||
.orderBy(USER.USER_ID.asc(), ROLE.ROLE_ID.asc(), ORDER.ORDER_ID.asc(), GOOD.GOOD_ID.asc());
|
||||
List<UserInfo> userInfos1 = userMapper.selectListByQueryAs(queryWrapper1, UserInfo.class);
|
||||
userInfos1.forEach(System.err::println);
|
||||
|
||||
QueryWrapper queryWrapper2 = QueryWrapper.create()
|
||||
.select(USER.ALL_COLUMNS, ID_CARD.ID_NUMBER)
|
||||
.from(USER.as("u"))
|
||||
.leftJoin(ID_CARD).as("i").on(USER.USER_ID.eq(ID_CARD.ID));
|
||||
List<UserInfo> userInfos2 = userMapper.selectListWithRelationsByQueryAs(queryWrapper2, UserInfo.class);
|
||||
userInfos2.forEach(System.err::println);
|
||||
|
||||
Assertions.assertEquals(userInfos1, userInfos2);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCircularReference() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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.eq(1));
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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.eq(1));
|
||||
List<UserVO1> userVO1s = userMapper.selectListByQueryAs(queryWrapper, UserVO1.class);
|
||||
System.err.println(userVO1s);
|
||||
}
|
||||
@ -138,10 +177,10 @@ class UserMapperTest {
|
||||
@Test
|
||||
void testPage() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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));
|
||||
.select(USER.USER_ID, USER.USER_NAME, ROLE.ALL_COLUMNS)
|
||||
.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));
|
||||
System.err.println(queryWrapper.toSQL());
|
||||
Page<UserVO> page = Page.of(1, 1);
|
||||
page.setOptimizeCountQuery(false);
|
||||
@ -156,18 +195,18 @@ class UserMapperTest {
|
||||
@Test
|
||||
void testListString() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(USER.USER_ID,
|
||||
USER.USER_NAME,
|
||||
ROLE.ROLE_NAME.as("roles"),
|
||||
ROLE.ROLE_ID.as("role_ids"))
|
||||
.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.eq(2));
|
||||
.select(USER.USER_ID,
|
||||
USER.USER_NAME,
|
||||
ROLE.ROLE_NAME.as("roles"),
|
||||
ROLE.ROLE_ID.as("role_ids"))
|
||||
.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.eq(2));
|
||||
UserVO2 user = userMapper.selectOneByQueryAs(queryWrapper, UserVO2.class);
|
||||
System.err.println(user);
|
||||
user = userMapper.selectOneByQueryAs(queryWrapper, UserVO2.class);
|
||||
System.err.println(user);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user