【Mybatis-plus-join】 push_join 和 @JoinField
【Mybatis-plus-join】 push_join 和 @JoinField
Metadata
title: 【Mybatis-plus-join】 push_join 和 @JoinField
date: 2023-01-22 18:58
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis-plus-join
categories:
- Mybatis-plus-join
keywords:
- Mybatis-plus-join
description: 【Mybatis-plus-join】 push_join 和 @JoinField
【Mybatis-plus-join】 push_join 和 @JoinField
第一步 在查询返回的模型中添加对象或者集合
// 第一步 在查询返回的模型中添加对象或者集合
// 注解参数
// 主表对象class
masterModelClass();
// 子表对象class
sunModelClass();
// 主表关联字段,注意不要写别名啥的,就写实体类中的属性名
masterModelField();
// 子表关联字段,注意不要写别名啥的,就写实体类中的属性名
sunModelField();
// 子表别名,如果你关联的对象中有两个相同的表,就需要显示填写一下别名,否则不用写
sunAlias() default "";
// 关联类型
relevancyType();
@JoinField(masterModelClass = Users.class, masterModelField = "ageId",
sunModelClass = UsersAge.class, sunModelField = "id", relevancyType = RelevancyType.ONT_TO_ONE,
sunAlias = "t1")
private UsersAge usersAge;
@JoinField(masterModelClass = Users.class, masterModelField = "ageId",
sunModelClass = UsersAge.class, sunModelField = "id", relevancyType = RelevancyType.MANY_TO_MANY,
sunAlias = "t2")
private List<UsersAge> usersAges;
添加完注解之后,就可以用push*Join方法,添加进去
pushLeftJoin(UsersVo::getUsersAge)
List<UsersVo> list = Joins.of(Users.class)
.pushLeftJoin(UsersVo::getUsersAge)
.joinList(UsersVo.class);
如果你添加完这个join之后,还需要再添加条件之类的
List<UsersVo> list = Joins.of(Users.class)
// 就需要用该参数,指定一下构建的泛型class
.pushLeftJoin(UsersVo::getUsersAge, UsersAge.class)
.eq(UsersAge::getId, Users::getAgeId).end()
.joinList(UsersVo.class);
SELECT
users.user_name,users.create_time,users.age_id,users.content_json,users.user_id, t1.age_doc as t1_ageDoc , t1.age_name as t1_ageName , t1.create_time as t1_createTime , t1.content_json_age as t1_contentJsonAge , t1.id as t1_id
FROM users as users
LEFT JOIN users_age as t1 ON t1.id = users.age_id
// 返回对象
UsersVo(....
usersAge=UsersAge(id=1, ageDoc=90, ageName=90, createTime=Fri Dec 17 13:11:11 CST 2021, contentJsonAge=TestUserJson(name=456, content=呜呜呜)))
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 蝶梦庄生!
评论