diff --git a/spring-boot-starter-domain/src/main/java/com/gitee/spring/boot/starter/domain/repository/MybatisPlusEntityMapper.java b/spring-boot-starter-domain/src/main/java/com/gitee/spring/boot/starter/domain/repository/MybatisPlusEntityMapper.java index 46212caa62355f7ace95e5bdcde20b1bd4da588f..60f93156d09eaebd7fdd36dc285d71f7250f7a0d 100644 --- a/spring-boot-starter-domain/src/main/java/com/gitee/spring/boot/starter/domain/repository/MybatisPlusEntityMapper.java +++ b/spring-boot-starter-domain/src/main/java/com/gitee/spring/boot/starter/domain/repository/MybatisPlusEntityMapper.java @@ -52,9 +52,9 @@ public class MybatisPlusEntityMapper implements EntityMapper { EntityExample entityExample = new EntityExample(new QueryWrapper<>()) { @Override public EntityExample selectColumns() { - if (columns != null) { + if (selectColumns != null) { QueryWrapper queryWrapper = (QueryWrapper) example; - queryWrapper.select(columns.toArray(new String[0])); + queryWrapper.select(selectColumns.toArray(new String[0])); } return this; } diff --git a/spring-domain-coating/src/main/java/com/gitee/spring/domain/coating/repository/AbstractChainRepository.java b/spring-domain-coating/src/main/java/com/gitee/spring/domain/coating/repository/AbstractChainRepository.java index ca131c52033ed102c1f514e1cd0c81a7ca8eeedc..16e8750704c708750be12da7a2c31bcedc2806ca 100644 --- a/spring-domain-coating/src/main/java/com/gitee/spring/domain/coating/repository/AbstractChainRepository.java +++ b/spring-domain-coating/src/main/java/com/gitee/spring/domain/coating/repository/AbstractChainRepository.java @@ -110,6 +110,7 @@ public abstract class AbstractChainRepository extends AbstractCoatingRepo List entities = Collections.emptyList(); if (!entityExample.isEmptyQuery() && entityExample.isDirtyQuery()) { + entityExample.setSelectColumns(entityDefinition.getBoundColumns()); entities = configuredRepository.selectByExample(boundedContext, entityExample); log.debug("The data queried is: {}", entities); } diff --git a/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityDefinition.java b/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityDefinition.java index 5b313a967d2de7c3b27889547fa807e140d9fe39..795799040b6be6b85beef66702c8e5a003924a41 100644 --- a/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityDefinition.java +++ b/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityDefinition.java @@ -37,7 +37,8 @@ public class EntityDefinition { private List boundBindingDefinitions; private List contextBindingDefinitions; private BindingDefinition boundIdBindingDefinition; - private boolean boundEntity; + private Set boundColumns; private Set fieldNames; private Map entityPropertyChainMap; + private boolean boundEntity; } diff --git a/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityExample.java b/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityExample.java index 9be0e2c6d36416f8044fea7b307b18af679f9e99..6a064df0c2108364c328ad56145f941cd62b3d45 100644 --- a/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityExample.java +++ b/spring-domain-core/src/main/java/com/gitee/spring/domain/core/entity/EntityExample.java @@ -5,13 +5,14 @@ import lombok.Data; import java.util.ArrayList; import java.util.List; +import java.util.Set; @Data public class EntityExample { protected boolean emptyQuery = false; protected Object example; - protected List columns; + protected Set selectColumns; protected List entityCriteria = new ArrayList<>(); protected String[] orderBy; protected String sort; diff --git a/spring-domain-core/src/main/java/com/gitee/spring/domain/core/repository/AbstractContextRepository.java b/spring-domain-core/src/main/java/com/gitee/spring/domain/core/repository/AbstractContextRepository.java index 284904ecb0c73be07f8030d76269b68548ae5b4e..d1d4891fd9498162c623d1e6f32b63a3f29ecda9 100644 --- a/spring-domain-core/src/main/java/com/gitee/spring/domain/core/repository/AbstractContextRepository.java +++ b/spring-domain-core/src/main/java/com/gitee/spring/domain/core/repository/AbstractContextRepository.java @@ -235,6 +235,7 @@ public abstract class AbstractContextRepository extends AbstractRepositor List boundBindingDefinitions = new ArrayList<>(); List contextBindingDefinitions = new ArrayList<>(); BindingDefinition boundIdBindingDefinition = null; + Set boundColumns = new LinkedHashSet<>(); for (Binding bindingAnnotation : bindingAnnotations) { AnnotationAttributes bindingAttributes = AnnotationUtils.getAnnotationAttributes( @@ -273,6 +274,8 @@ public abstract class AbstractContextRepository extends AbstractRepositor EntityDefinition entityDefinition = belongConfiguredRepository.getEntityDefinition(); entityDefinition.setBoundEntity(true); + + boundColumns.add(StrUtil.toUnderlineCase(aliasAttribute)); } BindingDefinition bindingDefinition = new BindingDefinition( @@ -302,7 +305,7 @@ public abstract class AbstractContextRepository extends AbstractRepositor attributes, sceneAttribute, mapper, pojoClass, sameType, mappedClass, useEntityExample, mapAsExample, orderByAsc, orderByDesc, orderBy, sort, orderAttribute, bindingDefinitions, boundBindingDefinitions, contextBindingDefinitions, boundIdBindingDefinition, - false, new LinkedHashSet<>(), new LinkedHashMap<>()); + boundColumns, new LinkedHashSet<>(), new LinkedHashMap<>(), false); EntityMapper entityMapper = newEntityMapper(entityDefinition); if (mapAsExample) { @@ -315,8 +318,7 @@ public abstract class AbstractContextRepository extends AbstractRepositor } ConfiguredRepository configuredRepository = new ConfiguredRepository( - this, entityPropertyChain, entityDefinition, entityMapper, entityAssembler, - (AbstractRepository) repository); + entityPropertyChain, entityDefinition, entityMapper, entityAssembler, (AbstractRepository) repository); return postProcessRepository(configuredRepository); }