feat 封装通用 selectVoSingle 与 selectVoPage 方法

This commit is contained in:
AprilWind 2025-07-28 18:47:19 +08:00
parent 48213bc9c9
commit 09ae31b86d

View File

@ -331,4 +331,31 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
return StreamUtils.toList(this.selectObjs(wrapper), mapper);
}
/**
* 根据条件查询单个VO对象返回第1条不抛异常
*
* @param wrapper 查询条件Wrapper
* @return 查询到的单个VO对象经过转换为指定的VO类后返回
*/
default V selectVoSingle(Wrapper<T> wrapper) {
return selectVoSingle(wrapper, this.currentVoClass());
}
/**
* 根据条件查询单个VO对象返回第1条不抛异常
*
* @param wrapper 查询条件Wrapper
* @param voClass 要转换的VO类的Class对象
* @param <C> VO类的类型
* @return 查询到的单个VO对象经过转换为指定的VO类后返回
*/
default <C> C selectVoSingle(Wrapper<T> wrapper, Class<C> voClass) {
// 限制只查一条记录
List<T> list = this.selectList(new Page<>(1, 1), wrapper);
if (CollUtil.isEmpty(list)) {
return null;
}
return MapstructUtils.convert(list.get(0), voClass);
}
}