WARNING

2.0的chain模型不支持

# push*Join 和 @JoinField 方便构建join查询方法(1.3.3版本之后)

第一步 在查询返回的模型中添加对象或者集合添加注解 @JoinField
注解参数:

@param masterModelClass() 主表对象class
@param sunModelClass() 子表对象class
@param masterModelField 主表关联字段,注意不要写别名啥的,就写实体类中的属性名
@param sunModelField 子表关联字段,注意不要写别名啥的,就写实体类中的属性名
@param sunAlias 名,如果你关联的对象中有两个相同的表,就需要显示填写一下别名,否则不用写
@param relevancyType 关联类型推荐使用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);
// 执行SQL
	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=呜呜呜)))