mapWithKey(query)
说明
把列表转成一个Map,KEY为指定字段的值
Mapper 内置方法
map(多个ID):多个ID,以ID为KEY的Map结果mapWithKey(KEY字段,多个ID):多个ID的Map结果mapWithKey(KEY字段,Where):动态条件的Map结果
QueryChain 内置方法
mapWithKey(keyGetter):指定key的Map结果mapWithKeyAndValue(keyGetter,valueGetter):指定key value 2列的Map结果
动态where查询
java
public class Demo {
@Autowired
private SysUserMapper sysUserMapper;
public void mapWithKey() {
Map<Integer,SysUser> map= sysUserMapper.mapWithKey(SysUser::getId,where->{
where.like(SysUser::getUserName,"abc");
});
}
}基于QueryChain(强大)
可构建复杂的场景, 更多操作前往 链路查询 - QueryChain !
java
public class Demo {
@Autowired
private SysUserMapper sysUserMapper;
public void mapWithKey() {
Map<Integer,SysUser> map= QueryChain.of(sysUserMapper)
.like(SysUser::getUserName,"abc")
.limit(10)
.mapWithKey(SysUser::getId);
}
}mapWithKey指定map的key、value(2个基本类型的结构)的写法
将结果转成map(key value都是简单类型的情况)
缺点:需要额外非基本类型 类接收key value的值(框架内部操作)
java
SysRoleMapper sysRoleMapper = session.getMapper(SysRoleMapper.class);
Map<Integer, String> maps = QueryChain.of(sysRoleMapper)
.mapWithKeyAndValue(SysRole::getId, SysRole::getName);