Skip to content

ResultCalcField 注解 VO映射 - 字段映射

说明

用于计算字段等,例如count sum等等;加上此注解,在调用.select(VO.class) 时会自动select count(1)、sum(xx);

属性说明

属性是否可空默认值说明
value计算sql值,例如 count(1),sum(id)或者动态 sum({id})
target对应的实体类,不写时,自动选择类上面@ResultEntity里的实体类
storey1存储层级,联表自己join自己时使用,一般不用管

如何用?

java
@Data
@ResultEntity(SysUser.class)
public class SysUserVo {
    
    @ResultCalcField("count(1)")
    private Integer count1;

    @ResultCalcField("count(id)")
    private Integer countId;

    @ResultCalcField("count({"+SysUser.Fields.id+"})")
    private Integer countId2;
}
java
@Service
public class Test{

    @Autowired
    private SysUserMapper sysUserMapper;

    public void demo() {
        Pager<SysUserVo> pager = QueryChain.of(sysUserMapper)
                .eq(SysUser::getId,1)
                .like(SysUser::getUserName,"xxx")
                .groupBy(SysUser::getId)
                .returnType(SysUserVo.class)
                .paging(Pager.of(1,10));
    }
}

其中 count({id}) 中的 {id}表示动态id的列名;配置注解属性 target storey进行动态value sql生成