diff --git a/easy-es-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/easy-es-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 4b09f64f..c9a3d78c 100644 --- a/easy-es-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/easy-es-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -12,6 +12,12 @@ "description": "是否开启easy-es LOGO BANNER的打印.", "type": "java.lang.Boolean" }, + { + "defaultValue": false, + "name": "easy-es.compatible", + "description": "是否开启兼容性(超低版本的es, 比如7.0.0开启该特性).", + "type": "java.lang.Boolean" + }, { "defaultValue": "127.0.0.1:9200", "name": "easy-es.address", diff --git a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java index d8fc3829..cf3e2d87 100644 --- a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java +++ b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java @@ -94,6 +94,15 @@ public interface BaseEsMapper { */ Boolean deleteIndex(String... indexNames); + /** + * 删除当前mapper索引,无需传递索引名 + * @return {@link Boolean} 是否成功 + * @author MoJie + */ + default Boolean deleteIndex() { + return this.deleteIndex(EntityInfoHelper.getIndexName(this.getEntityClass())); + } + /** * 刷新索引 * diff --git a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java index 2d1bbd98..86896c55 100644 --- a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java +++ b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java @@ -102,9 +102,7 @@ public class BaseEsMapperImpl implements BaseEsMapper { @Override public Boolean createIndex() { - EntityInfo entityInfo = EntityInfoHelper.getEntityInfo(entityClass); - CreateIndexParam createIndexParam = IndexUtils.getCreateIndexParam(entityInfo, entityClass); - return IndexUtils.createIndex(client, entityInfo, createIndexParam); + return createIndex(EntityInfoHelper.getIndexName(entityClass)); } @Override @@ -164,8 +162,13 @@ public class BaseEsMapperImpl implements BaseEsMapper { @Override @SneakyThrows public String executeSQL(String sql) { + // 如果是下划线转驼峰,ee帮助处理 + if (GlobalConfigCache.getGlobalConfig().getDbConfig().isMapUnderscoreToCamelCase()) { + sql = StringUtils.camelToUnderline(sql); + } PrintUtils.printSql(sql); - QueryResponse response = client.sql().query(x -> x.query(sql).format("json")); + String finalSql = sql; + QueryResponse response = client.sql().query(x -> x.query(finalSql).format("json")); return JsonpUtils.toString(response, new StringBuilder()).toString(); } diff --git a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/WrapperProcessor.java b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/WrapperProcessor.java index d17228b9..5f7a306d 100644 --- a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/WrapperProcessor.java +++ b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/WrapperProcessor.java @@ -627,8 +627,14 @@ public class WrapperProcessor { // 设置以String形式指定的自定义排序字段及规则(此类排序通常由前端传入,满足部分用户个性化需求) if (CollectionUtils.isNotEmpty(wrapper.orderByParams)) { wrapper.orderByParams.forEach(orderByParam -> { + // 排序字段名 + String orderColumn = orderByParam.getOrder(); + // 获取配置是否开启了驼峰转换 + if (GlobalConfigCache.getGlobalConfig().getDbConfig().isMapUnderscoreToCamelCase()) { + orderColumn = StringUtils.camelToUnderline(orderColumn); + } // 设置排序字段 - FieldSort.Builder fieldSortBuilder = new FieldSort.Builder().field(orderByParam.getOrder()); + FieldSort.Builder fieldSortBuilder = new FieldSort.Builder().field(orderColumn); // 设置排序规则 if (SortOrder.Asc.toString().equalsIgnoreCase(orderByParam.getSort())) { diff --git a/easy-es-core/src/main/java/org/dromara/easyes/core/toolkit/EntityInfoHelper.java b/easy-es-core/src/main/java/org/dromara/easyes/core/toolkit/EntityInfoHelper.java index 1fde630f..ba723910 100644 --- a/easy-es-core/src/main/java/org/dromara/easyes/core/toolkit/EntityInfoHelper.java +++ b/easy-es-core/src/main/java/org/dromara/easyes/core/toolkit/EntityInfoHelper.java @@ -374,6 +374,7 @@ public class EntityInfoHelper { if (dbConfig.isMapUnderscoreToCamelCase()) { realHighLightField = StringUtils.camelToUnderline(realHighLightField); } + // 如果字段没有参与条件查询,则不进行高亮设置 addHighlightParam(entityInfo, nestedOrObjectClass, highLight, realHighLightField, mappingField); MultiIndexField multiIndexField = field.getAnnotation(MultiIndexField.class); @@ -413,6 +414,11 @@ public class EntityInfoHelper { .setHighLightField(realHighLightField) .setHighLightType(highLight.highLightType()) .setRequireFieldMatch(highLight.requireFieldMatch()); + // 多级高亮 合并高亮结果时,es8会尝试调用 first() 方法-降级不会影响es7的查询 + // 如果是pinyin那么进行高亮降级,否则会出现first() should not be called in this context异常 + if (realHighLightField.endsWith(".pinyin")) { + highlightParam.setHighLightType(HighLightTypeEnum.PLAIN); + } if (MINUS_ONE != highLight.numberOfFragments() && highLight.numberOfFragments() > ZERO) { highlightParam.setNumberOfFragments(highLight.numberOfFragments()); } @@ -694,6 +700,31 @@ public class EntityInfoHelper { return ReflectionKit.getFieldList(ClassUtils.getUserClass(clazz)); } + /** + * 根据类获取索引名 + * @param clazz 实体 + * @return {@link String} + * @author MoJie + */ + public static String getIndexName(Class clazz) { + String tablePrefix = GlobalConfigCache.getGlobalConfig().getDbConfig().getIndexPrefix(); + IndexName table = clazz.getAnnotation(IndexName.class); + boolean tablePrefixEffect = true; + String indexName = clazz.getSimpleName().toLowerCase(Locale.ROOT); + if (table != null) { + if (StringUtils.isNotBlank(table.value())) { + indexName = table.value(); + if (StringUtils.isNotBlank(tablePrefix) && !table.keepGlobalPrefix()) { + tablePrefixEffect = false; + } + } + } + if (StringUtils.isNotBlank(tablePrefix) && tablePrefixEffect) { + indexName = tablePrefix + indexName; + } + return indexName; + } + /** * 初始化索引名等信息 * diff --git a/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java b/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java index 1ac51b89..0b24723c 100644 --- a/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java +++ b/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java @@ -10,6 +10,7 @@ import co.elastic.clients.elasticsearch.core.SearchRequest; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.json.JsonData; import co.elastic.clients.transport.rest_client.RestClientOptions; +import org.dromara.easyes.common.constants.BaseEsConstants; import org.dromara.easyes.core.biz.EntityInfo; import org.dromara.easyes.core.biz.EsPageInfo; import org.dromara.easyes.core.biz.OrderByParam; @@ -939,41 +940,41 @@ public class AllTest { Boolean success = documentMapper.setRequestOptions(new RestClientOptions(builder.build())); Assertions.assertTrue(success); } -// -// // 4.删除 -// @Test -// @Order(76) -// public void testDeleteById() { -// int count = documentMapper.deleteById("1"); -// Assertions.assertEquals(1, count); -// } -// -// @Test -// @Order(77) -// public void testDeleteBatchIds() { -// List idList = Arrays.asList("2", "3", "4"); -// int count = documentMapper.deleteBatchIds(idList); -// Assertions.assertEquals(3, count); -// } -// -// @Test -// @Order(78) -// public void testDeleteByWrapper() { -// LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); -// wrapper.match(Document::getCreator, "老汉"); -// -// int count = documentMapper.delete(wrapper); -// Assertions.assertEquals(18, count); -// } -// -// @Test -// @Order(80) -// public void testDeleteIndex() { -// boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); -// boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); -// Assertions.assertTrue(deleted); -// Assertions.assertTrue(lockDeleted); -// } + + // 4.删除 + @Test + @Order(76) + public void testDeleteById() { + int count = documentMapper.deleteById("1"); + Assertions.assertEquals(1, count); + } + + @Test + @Order(77) + public void testDeleteBatchIds() { + List idList = Arrays.asList("2", "3", "4"); + int count = documentMapper.deleteBatchIds(idList); + Assertions.assertEquals(3, count); + } + + @Test + @Order(78) + public void testDeleteByWrapper() { + LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); + wrapper.match(Document::getCreator, "老汉"); + + int count = documentMapper.delete(wrapper); + Assertions.assertEquals(18, count); + } + + @Test + @Order(80) + public void testDeleteIndex() { + boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); + boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); + Assertions.assertTrue(deleted); + Assertions.assertTrue(lockDeleted); + } @Test @Order(79) diff --git a/easy-es-solon-test/src/test/resources/app.yml b/easy-es-solon-test/src/test/resources/app.yml index 38c3de80..089ad00a 100644 --- a/easy-es-solon-test/src/test/resources/app.yml +++ b/easy-es-solon-test/src/test/resources/app.yml @@ -1,9 +1,9 @@ easy-es: # enable: true - address: 127.0.0.1:9200 - schema: https - username: elastic - password: a2*HFkQU93mBnxOTaEAs + address: 192.168.0.18:9200 +# schema: https +# username: elastic +# password: a2*HFkQU93mBnxOTaEAs keep-alive-millis: 18000 global-config: i-kun-mode: false @@ -11,7 +11,7 @@ easy-es: async-process-index-blocking: true print-dsl: true db-config: - map-underscore-to-camel-case: false + map-underscore-to-camel-case: true id-type: customize field-strategy: not_empty refresh-policy: immediate diff --git a/easy-es-spring-test/src/test/java/org/dromara/easyes/test/all/XmlScannerAllTest.java b/easy-es-spring-test/src/test/java/org/dromara/easyes/test/all/XmlScannerAllTest.java index 427997c6..02f51cfe 100644 --- a/easy-es-spring-test/src/test/java/org/dromara/easyes/test/all/XmlScannerAllTest.java +++ b/easy-es-spring-test/src/test/java/org/dromara/easyes/test/all/XmlScannerAllTest.java @@ -10,6 +10,7 @@ import co.elastic.clients.elasticsearch.core.SearchRequest; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.json.JsonData; import co.elastic.clients.transport.rest_client.RestClientOptions; +import org.dromara.easyes.common.constants.BaseEsConstants; import org.dromara.easyes.core.biz.EntityInfo; import org.dromara.easyes.core.biz.EsPageInfo; import org.dromara.easyes.core.biz.OrderByParam; @@ -675,7 +676,7 @@ public class XmlScannerAllTest { wrapper.match(Document::getCreator, "老汉"); List orderByParams = new ArrayList<>(); OrderByParam orderByParam = new OrderByParam(); - orderByParam.setOrder("starNum"); + orderByParam.setOrder("star_num"); orderByParam.setSort("DESC"); orderByParams.add(orderByParam); wrapper.orderBy(orderByParams); @@ -941,39 +942,39 @@ public class XmlScannerAllTest { } // 4.删除 -// @Test -// @Order(76) -// public void testDeleteById() { -// int count = documentMapper.deleteById("1"); -// Assertions.assertEquals(1, count); -// } -// -// @Test -// @Order(77) -// public void testDeleteBatchIds() { -// List idList = Arrays.asList("2", "3", "4"); -// int count = documentMapper.deleteBatchIds(idList); -// Assertions.assertEquals(3, count); -// } -// -// @Test -// @Order(78) -// public void testDeleteByWrapper() { -// LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); -// wrapper.match(Document::getCreator, "老汉"); -// -// int count = documentMapper.delete(wrapper); -// Assertions.assertEquals(18, count); -// } -// -// @Test -// @Order(80) -// public void testDeleteIndex() { -// boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); -// boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); -// Assertions.assertTrue(deleted); -// Assertions.assertTrue(lockDeleted); -// } + @Test + @Order(76) + public void testDeleteById() { + int count = documentMapper.deleteById("1"); + Assertions.assertEquals(1, count); + } + + @Test + @Order(77) + public void testDeleteBatchIds() { + List idList = Arrays.asList("2", "3", "4"); + int count = documentMapper.deleteBatchIds(idList); + Assertions.assertEquals(3, count); + } + + @Test + @Order(78) + public void testDeleteByWrapper() { + LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); + wrapper.match(Document::getCreator, "老汉"); + + int count = documentMapper.delete(wrapper); + Assertions.assertEquals(18, count); + } + + @Test + @Order(80) + public void testDeleteIndex() { + boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); + boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); + Assertions.assertTrue(deleted); + Assertions.assertTrue(lockDeleted); + } @Test @Order(79) diff --git a/easy-es-spring-test/src/test/resources/spring-context.xml b/easy-es-spring-test/src/test/resources/spring-context.xml index e9b6a2d4..0a49e233 100644 --- a/easy-es-spring-test/src/test/resources/spring-context.xml +++ b/easy-es-spring-test/src/test/resources/spring-context.xml @@ -11,15 +11,13 @@ - - - + - + @@ -32,6 +30,6 @@ - + \ No newline at end of file diff --git a/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java b/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java index 89f33899..43dff2ee 100644 --- a/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java +++ b/easy-es-spring/src/main/java/org/dromara/easyes/spring/MapperScannerConfigurer.java @@ -3,6 +3,7 @@ package org.dromara.easyes.spring; import lombok.Setter; import org.dromara.easyes.common.utils.EEVersionUtils; import org.dromara.easyes.common.utils.LogUtils; +import org.dromara.easyes.common.utils.StringUtils; import org.dromara.easyes.spring.config.ClassPathMapperScanner; import org.springframework.beans.BeansException; import org.springframework.beans.PropertyValue; @@ -63,7 +64,10 @@ public class MapperScannerConfigurer } PropertyValues values = mapperScannerBean.getPropertyValues(); // 如果在环境变量中取扫描的包,需要从easy-es.mappers进行取值,与mybatis配置mapper相似,但这里不做配置推荐 - this.basePackage = getPropertyValue("easy-es.mappers", values); + String propertyValue = getPropertyValue("easy-es.mappers", values); + if (StringUtils.isNotBlank(propertyValue)) { + this.basePackage = propertyValue; + } } // 取变量 diff --git a/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java b/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java index a0ee53e5..a89f1c86 100644 --- a/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java +++ b/easy-es-spring/src/main/java/org/dromara/easyes/spring/annotation/MapperScannerRegister.java @@ -1,5 +1,6 @@ package org.dromara.easyes.spring.annotation; +import org.dromara.easyes.common.constants.BaseEsConstants; import org.dromara.easyes.common.utils.LogUtils; import org.dromara.easyes.spring.MapperScannerConfigurer; import org.springframework.beans.factory.config.BeanDefinition; @@ -12,6 +13,7 @@ import org.springframework.core.env.Environment; import org.springframework.core.type.AnnotationMetadata; import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -36,20 +38,30 @@ public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, Env public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { AnnotationAttributes mapperScanAttrs = AnnotationAttributes .fromMap(importingClassMetadata.getAnnotationAttributes(EsMapperScan.class.getName())); + List basePackages = new ArrayList<>(); // 默认已注解标记为主,如果没有则尝试寻找easy-es配置 scan if (mapperScanAttrs != null) { - List basePackages = Arrays.stream(mapperScanAttrs.getStringArray("value")) - .filter(StringUtils::hasText) - .map(map -> { - // 判断是否需要处理${}变量 - if (map.contains("${") && map.contains("}")) { - String basePackage = this.environment.resolvePlaceholders(map); - LogUtils.formatInfo("Scan Easy-Es Mapper[%s -> %s]", map, basePackage); - return basePackage; - } - return map; - }) - .collect(Collectors.toList()); + basePackages = Arrays.stream(mapperScanAttrs.getStringArray("value")) + .filter(StringUtils::hasText) + .map(map -> { + // 判断是否需要处理${}变量 + if (map.contains("${") && map.contains("}")) { + String basePackage = this.environment.resolvePlaceholders(map); + LogUtils.formatInfo("Scan Easy-Es Mapper[%s -> %s]", map, basePackage); + return basePackage; + } + return map; + }) + .collect(Collectors.toList()); + } else { + // 如果在环境变量中取扫描的包,需要从easy-es.mappers进行取值,与mybatis配置mapper相似,但这里不做配置推荐 + String propertyValue = this.environment.getProperty("easy-es.mappers", String.class, BaseEsConstants.EMPTY_STR); + if (org.dromara.easyes.common.utils.StringUtils.isNotBlank(propertyValue)) { + basePackages = Arrays.asList(propertyValue.split(COMMA)); + } + } + // 如果扫描的包不为空,则进行mapperInterface的注册 + if (!basePackages.isEmpty()) { // 注册bean registerBeanDefinitions(registry, generateBaseBeanName(importingClassMetadata), StringUtils.toStringArray(basePackages)); diff --git a/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper/AuthorMapper.java b/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper2/AuthorMapper.java similarity index 86% rename from easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper/AuthorMapper.java rename to easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper2/AuthorMapper.java index 5704a69c..17712af4 100644 --- a/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper/AuthorMapper.java +++ b/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper2/AuthorMapper.java @@ -1,4 +1,4 @@ -package org.dromara.easyes.test.mapper; +package org.dromara.easyes.test.mapper2; import org.dromara.easyes.core.kernel.BaseEsMapper; diff --git a/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper/CommentMapper.java b/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper3/CommentMapper.java similarity index 86% rename from easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper/CommentMapper.java rename to easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper3/CommentMapper.java index f18bd563..0d90dbaa 100644 --- a/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper/CommentMapper.java +++ b/easy-es-springboot-test/src/main/java/org/dromara/easyes/test/mapper3/CommentMapper.java @@ -1,4 +1,4 @@ -package org.dromara.easyes.test.mapper; +package org.dromara.easyes.test.mapper3; import org.dromara.easyes.core.kernel.BaseEsMapper; diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/TestEasyEsApplication.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/TestEasyEsApplication.java index 60a6d64d..379d0d89 100644 --- a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/TestEasyEsApplication.java +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/TestEasyEsApplication.java @@ -10,7 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * Copyright © 2021 xpc1024 All Rights Reserved **/ @SpringBootApplication -@EsMapperScan("org.dromara.easyes.test.mapper") +@EsMapperScan({"org.dromara.easyes.test.mapper", "org.dromara.easyes.test.mapper2", "org.dromara.easyes.test.mapper3"}) public class TestEasyEsApplication { public static void main(String[] args) { SpringApplication.run(TestEasyEsApplication.class, args); diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/all/AllTest.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/all/AllTest.java index 4bdef0f1..1b410312 100644 --- a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/all/AllTest.java +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/all/AllTest.java @@ -10,6 +10,7 @@ import co.elastic.clients.elasticsearch.core.SearchRequest; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.json.JsonData; import co.elastic.clients.transport.rest_client.RestClientOptions; +import org.dromara.easyes.common.constants.BaseEsConstants; import org.dromara.easyes.core.biz.EntityInfo; import org.dromara.easyes.core.biz.EsPageInfo; import org.dromara.easyes.core.biz.OrderByParam; @@ -942,40 +943,40 @@ public class AllTest { Assertions.assertTrue(success); } -// // 4.删除 -// @Test -// @Order(76) -// public void testDeleteById() { -// int count = documentMapper.deleteById("1"); -// Assertions.assertEquals(1, count); -// } -// -// @Test -// @Order(77) -// public void testDeleteBatchIds() { -// List idList = Arrays.asList("2", "3", "4"); -// int count = documentMapper.deleteBatchIds(idList); -// Assertions.assertEquals(3, count); -// } -// -// @Test -// @Order(78) -// public void testDeleteByWrapper() { -// LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); -// wrapper.match(Document::getCreator, "老汉"); -// -// int count = documentMapper.delete(wrapper); -// Assertions.assertEquals(18, count); -// } -// -// @Test -// @Order(80) -// public void testDeleteIndex() { -// boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); -// boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); -// Assertions.assertTrue(deleted); -// Assertions.assertTrue(lockDeleted); -// } + // 4.删除 + @Test + @Order(76) + public void testDeleteById() { + int count = documentMapper.deleteById("1"); + Assertions.assertEquals(1, count); + } + + @Test + @Order(77) + public void testDeleteBatchIds() { + List idList = Arrays.asList("2", "3", "4"); + int count = documentMapper.deleteBatchIds(idList); + Assertions.assertEquals(3, count); + } + + @Test + @Order(78) + public void testDeleteByWrapper() { + LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); + wrapper.match(Document::getCreator, "老汉"); + + int count = documentMapper.delete(wrapper); + Assertions.assertEquals(18, count); + } + + @Test + @Order(80) + public void testDeleteIndex() { + boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); + boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); + Assertions.assertTrue(deleted); + Assertions.assertTrue(lockDeleted); + } @Test @Order(79) diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/join/JoinTest.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/join/JoinTest.java index 3860de8f..46fece1e 100644 --- a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/join/JoinTest.java +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/join/JoinTest.java @@ -10,8 +10,8 @@ import org.dromara.easyes.test.entity.Author; import org.dromara.easyes.test.entity.Comment; import org.dromara.easyes.test.entity.Contact; import org.dromara.easyes.test.entity.Document; -import org.dromara.easyes.test.mapper.AuthorMapper; -import org.dromara.easyes.test.mapper.CommentMapper; +import org.dromara.easyes.test.mapper2.AuthorMapper; +import org.dromara.easyes.test.mapper3.CommentMapper; import org.dromara.easyes.test.mapper.ContactMapper; import org.dromara.easyes.test.mapper.DocumentMapper; import org.junit.jupiter.api.*; diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/MapperScanEsApplication.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/MapperScanEsApplication.java new file mode 100644 index 00000000..d7a74f0b --- /dev/null +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/MapperScanEsApplication.java @@ -0,0 +1,18 @@ +package org.dromara.easyes.test.mapper; + +import org.dromara.easyes.spring.annotation.EsMapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 启动类 + *

+ * Copyright © 2021 xpc1024 All Rights Reserved + **/ +@SpringBootApplication +@EsMapperScan({"org.dromara.easyes.test.mapper", "org.dromara.easyes.test.mapper2", "org.dromara.easyes.test.mapper3"}) +public class MapperScanEsApplication { + public static void main(String[] args) { + SpringApplication.run(MapperScanEsApplication.class, args); + } +} diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/MapperScanTest.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/MapperScanTest.java new file mode 100644 index 00000000..e21c6a92 --- /dev/null +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/MapperScanTest.java @@ -0,0 +1,72 @@ +package org.dromara.easyes.test.mapper; + +import org.dromara.easyes.common.constants.BaseEsConstants; +import org.dromara.easyes.core.toolkit.EntityInfoHelper; +import org.dromara.easyes.test.TestEasyEsApplication; +import org.dromara.easyes.test.entity.Document; +import org.dromara.easyes.test.mapper2.AuthorMapper; +import org.dromara.easyes.test.mapper3.CommentMapper; +import org.junit.jupiter.api.*; +import org.springframework.boot.test.context.SpringBootTest; + +import javax.annotation.Resource; + +/** + * @author MoJie + * @since 2.0 + */ +@DisplayName("easy-es多包扫描单元测试") +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@SpringBootTest(classes = MapperScanEsApplication.class) +public class MapperScanTest { + + @Resource + private ContactMapper contactMapper; + @Resource + private AuthorMapper authorMapper; + @Resource + private CommentMapper commentMapper; + + @Test + @Order(0) + public void testCreateIndex1() { + boolean success = contactMapper.createIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(1) + public void testDeleteIndex1() { + boolean deleted = contactMapper.deleteIndex(); + Assertions.assertTrue(deleted); + } + + @Test + @Order(2) + public void testCreateIndex2() { + boolean success = authorMapper.createIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(3) + public void testDeleteIndex2() { + boolean success = authorMapper.deleteIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(4) + public void testCreateIndex3() { + boolean success = commentMapper.createIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(5) + public void testDeleteIndex3() { + boolean success = commentMapper.deleteIndex(); + Assertions.assertTrue(success); + } + +} diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/PattenMapperScanTest.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/PattenMapperScanTest.java new file mode 100644 index 00000000..40db2ce4 --- /dev/null +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/PattenMapperScanTest.java @@ -0,0 +1,68 @@ +package org.dromara.easyes.test.mapper; + +import org.dromara.easyes.test.mapper2.AuthorMapper; +import org.dromara.easyes.test.mapper3.CommentMapper; +import org.junit.jupiter.api.*; +import org.springframework.boot.test.context.SpringBootTest; + +import javax.annotation.Resource; + +/** + * @author MoJie + * @since 2.0 + */ +@DisplayName("easy-es多包扫描单元测试") +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@SpringBootTest(classes = PattenScanEsApplication.class) +public class PattenMapperScanTest { + + @Resource + private ContactMapper contactMapper; + @Resource + private AuthorMapper authorMapper; + @Resource + private CommentMapper commentMapper; + + @Test + @Order(0) + public void testCreateIndex1() { + boolean success = contactMapper.createIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(1) + public void testDeleteIndex1() { + boolean deleted = contactMapper.deleteIndex(); + Assertions.assertTrue(deleted); + } + + @Test + @Order(2) + public void testCreateIndex2() { + boolean success = authorMapper.createIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(3) + public void testDeleteIndex2() { + boolean success = authorMapper.deleteIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(4) + public void testCreateIndex3() { + boolean success = commentMapper.createIndex(); + Assertions.assertTrue(success); + } + + @Test + @Order(5) + public void testDeleteIndex3() { + boolean success = commentMapper.deleteIndex(); + Assertions.assertTrue(success); + } + +} diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/PattenScanEsApplication.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/PattenScanEsApplication.java new file mode 100644 index 00000000..783fe403 --- /dev/null +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mapper/PattenScanEsApplication.java @@ -0,0 +1,18 @@ +package org.dromara.easyes.test.mapper; + +import org.dromara.easyes.spring.annotation.EsMapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 启动类 + *

+ * Copyright © 2021 xpc1024 All Rights Reserved + **/ +@SpringBootApplication +@EsMapperScan({"org.dromara.easyes.test.*"}) +public class PattenScanEsApplication { + public static void main(String[] args) { + SpringApplication.run(PattenScanEsApplication.class, args); + } +}