@Fetch - 轮询拉取数据注解 
说明 
类似JPA 1对1 1对多的功能,只是此注解只能在VO/内嵌类VO里使用
属性说明 
| 属性 | 是否可空 | 默认值 | 说明 | 
|---|---|---|---|
| column | 是 | Fetch列,会根据此列去查,column 和 property 二选一,column优先,一般不推荐用 | |
| property | 否 | Fetch 源实体类的属性,property + source + storey 组合 用于获取列 | |
| source | 否 | Fetch property 对应的实体类 | |
| storey | 是 | source实体类的存储层级;默认为-1;当为默认值-1时,如果有在内嵌类里,则使用内嵌类的层级,否则认为1 | |
| target | 否 | 查询目标,相当于查询那个表 | |
| targetProperty | 否 | 目标属性,相当于关联列 用于条件 | |
| targetSelectProperty | 是 | 用于返回单列的情况,例如userName,也可动态列例如:[count(distinct {xx})] | |
| middle | 否 | 中间实体类(中间表) | |
| middleSourceProperty | 否 | 中间实体类源属性(中间表与源表的列) | |
| middleTargetProperty | 否 | 中间实体类目标属性(中间表与目标表的列) | |
| orderBy | 是 | 用于结果排序 例如 "[{xx} desc,{xx2} desc] 或 "xx desc,xx2 desc"; 其中 xx xx2 均为 实体类属性,不是列,多个逗号分割 | |
| multiValueErrorIgnore | 是 | false | 1 对 1 多条时,发现多条不报错 | 
| limit | 是 | 0 | 默认不限制条数 | 
| memoryLimit | 是 | false | 通过内存的形式进行limit;默认是SQL;内存limit的好处就是使用in查询后,代码limit,减少了查询次数 | 
| nullFillValue | 是 | null时,填充的值 | |
| otherConditions | 是 | 其他额外条件,例如[{type} =2],type为实体类属性 | 
value 可不填写,一般在xml里映射时,才需要指定列名
使用示例 
java
@Data
@ResultEntity(SysUser.class)
public class SysUserVo {
    private Integer id;
    private String userName;
    private LocalDateTime createTime;
    @Fetch(source = SysUser.class , property=SysUser.Fields.roleId, target = SysRole.class, targetProperty = SysRole.Fields.id, targetSelectProperty = SysRole.Fields.roleName, orderBy = SysRole.Fields.id+" asc")
    private List<String> sysRoleNames;
    @Fetch(source = SysUser.class , property=SysUser.Fields.roleId, target = SysRole.class, targetProperty = SysRole.Fields.id, orderBy = SysRole.Fields.id+" asc")
    private List<SysRole> sysRoles;
}java
@Service
public class Test{
    @Autowired
    private SysUserMapper sysUserMapper;
    public void demo() {
        Pager<SysUserVo> pager = QueryChain.of(sysUserMapper)
                .select(SysUserVo.class)
                .eq(SysUser::getId,1)
                .like(SysUser::getUserName,"xxx")
                .returnType(SysUserVo.class)
                .paging(Pager.of(1,10));
    }
}这样,执行查询后,它会再次去查角色表,为你拉取数据;1对1 就用VO/实体类接收;1对多 就用List<VO/实体类>接收
@Fetch 额外条件?开关?有 
java
@Service
public class Test{
    @Autowired
    private SysUserMapper sysUserMapper;
    public void demo() {
        Pager<SysUserVo> pager = QueryChain.of(sysUserMapper)
                .select(SysUserVo.class)
                .eq(SysUser::getId,1)
                .like(SysUser::getUserName,"xxx")
                //开关控制
                .fetchEnable(SysUserVo::getSysRoles,true)
                //额外条件
                .fetchFilter(SysUserVo::getSysRoles, where -> {
                    where.eq(SysRole::getId, 0);
                })
                .returnType(SysUserVo.class)
                .paging(Pager.of(1,10));
    }
}