optimize BaseMapper.selectListByQueryAs()

This commit is contained in:
开源海哥 2023-06-06 10:20:02 +08:00
parent 2d0286514b
commit ea20145f26

View File

@ -452,6 +452,10 @@ public interface BaseMapper<T> {
* @return 数据列表 * @return 数据列表
*/ */
default <R> List<R> selectListByQueryAs(QueryWrapper queryWrapper, Class<R> asType) { default <R> List<R> selectListByQueryAs(QueryWrapper queryWrapper, Class<R> asType) {
if (Number.class.isAssignableFrom(asType)
|| String.class.isAssignableFrom(asType)) {
return selectObjectListByQueryAs(queryWrapper, asType);
}
try { try {
MappedStatementTypes.setCurrentType(asType); MappedStatementTypes.setCurrentType(asType);
return (List<R>) selectListByQuery(queryWrapper); return (List<R>) selectListByQuery(queryWrapper);
@ -522,7 +526,7 @@ public interface BaseMapper<T> {
if (queryResults == null || queryResults.isEmpty()) { if (queryResults == null || queryResults.isEmpty()) {
return Collections.emptyList(); return Collections.emptyList();
} }
List<R> results = new ArrayList<>(); List<R> results = new ArrayList<>(queryResults.size());
for (Object queryResult : queryResults) { for (Object queryResult : queryResults) {
results.add((R) ConvertUtil.convert(queryResult, asType)); results.add((R) ConvertUtil.convert(queryResult, asType));
} }