ResultCalcField 注解 VO映射 - 字段映射
说明
用于计算字段等,例如count sum等等;加上此注解,在调用.select(VO.class) 时会自动select count(1)、sum(xx);
属性说明
| 属性 | 是否可空 | 默认值 | 说明 |
|---|---|---|---|
| value | 否 | 计算sql值,例如 count(1),sum(id)或者动态 sum({id}) | |
| target | 是 | 对应的实体类,不写时,自动选择类上面@ResultEntity里的实体类 | |
| storey | 是 | 1 | 存储层级,联表自己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生成
