From 35e297d591e588d61ac1734c56a66d35492504d0 Mon Sep 17 00:00:00 2001 From: wanghaun Date: Wed, 29 Jun 2022 19:18:54 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feature/20220629=5Ffix=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=97=A5=E5=BF=97=E9=85=8D=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/parse/sql/EsSqlQueryHelper.java | 21 +++++++++--- .../proxy/EsEngineProxyBeanFactory.java | 6 ++++ .../base/common/proxy/EsQueryProxy.java | 6 ++-- .../ann/model/EsBaseExecuteHandle.java | 32 ++++++++++++++----- .../ann/param/EsParamExecuteHandler.java | 11 +++++-- .../queryhandler/sql/EsSqlExecuteHandler.java | 6 ++-- .../engine/base/config/EsEngineConfig.java | 18 +++++++++++ .../base/config/EsEngineConfigProperties.java | 10 ++++++ .../listener/JooqEsQueryExecuteListener.java | 2 +- .../MybatisEsQueryInterceptor.java | 30 +++++++++++------ 10 files changed, 111 insertions(+), 31 deletions(-) diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java index 13dde20..2416ffc 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java @@ -3,6 +3,7 @@ import com.elasticsearch.engine.base.common.proxy.handler.exannotation.AnnotationQueryCommon; import com.elasticsearch.engine.base.common.queryhandler.sql.EsSqlExecuteHandler; import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; +import com.elasticsearch.engine.base.config.EsEngineConfig; import com.elasticsearch.engine.base.model.constant.CommonConstant; import com.elasticsearch.engine.base.model.domain.BackDto; import com.elasticsearch.engine.base.model.emenu.SqlParamParse; @@ -30,6 +31,8 @@ @Component public class EsSqlQueryHelper { + private static final String ENABLE_LOG_OUT_PROPERTIES = "es.engine.config.sql-trace-log"; + @Resource private EsSqlExecuteHandler esSqlExecuteHandler; @@ -96,12 +99,14 @@ public List esQueryBack(Method method, String sql, Object[] args, BackDto bac String paramSql = fillParamSql(method, sql, args, backDto); //执行ES查询 List esResult = esSqlExecuteHandler.queryBySql(paramSql, backDto.getBackColumnTyp(), Boolean.TRUE); - if (CollectionUtils.isEmpty(esResult)){ + if (CollectionUtils.isEmpty(esResult)) { return null; } //将原sql改写成回表sql String backSql = SqlParserHelper.rewriteBackSql(sql, backDto, esResult); - log.info("回表sql : {}", backSql); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("回表sql : {}", backSql); + } //将回表sql添加到threadLocal ThreadLocalUtil.set(CommonConstant.BACK_QUERY_SQL, backSql); return esResult; @@ -120,7 +125,9 @@ public List esQueryBack(Method method, String sql, Object[] args, BackDto bac private String fillParamSql(Method method, String sql, Object[] args, BackDto backDto) throws JSQLParserException { //jpa判断是否清除as别名 Boolean isCleanAs = Boolean.TRUE; - log.info("原始sql: {}", sql); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("原始sql: {}", sql); + } //jpa原生查询 则不清楚 as别名 // Query query = method.getAnnotation(Query.class); // if (Objects.nonNull(query) && query.nativeQuery()) { @@ -128,13 +135,17 @@ private String fillParamSql(Method method, String sql, Object[] args, BackDto ba // } //改写sql Select select = SqlParserHelper.rewriteSql(method, sql, isCleanAs, backDto); - log.info("改写后sql: {}", select); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("改写后sql: {}", select); + } //参数替换 // 解析sql参数 //jooq 需要替换"`" String selectSql = select.toString().replaceAll("`", ""); String paramSql = SqlParamParseHelper.getMethodArgsSqlJpa(selectSql, method, args, SqlParamParse.JAP_SQL_PARAM); - log.info("替换参数后sql: {}", paramSql); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("替换参数后sql: {}", paramSql); + } return paramSql; } diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java index f9b09e7..05f5274 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java @@ -43,6 +43,12 @@ public void setApplicationContext(ApplicationContext applicationContext) throws this.applicationContext = applicationContext; } + /** + * 返回FactoryBean创建的bean + * 调用 getBean("EsEngineProxyBeanFactory"),会调用EsEngineProxyBeanFactory.getObject() 返回对象 + * + * @return + */ @Override public T getObject() { return (T) Proxy.newProxyInstance( diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java index f535fa0..cecea4b 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java @@ -24,18 +24,18 @@ public class EsQueryProxy implements InvocationHandler { private EsProxyExecuteHandler esProxyExecuteHandler; - private boolean enableLogOutEsQueryJson = false; + private boolean enableLogOut = false; public EsQueryProxy(Class targetInterface, boolean visitQueryBeanParent) { this.targetInterface = targetInterface; this.visitQueryBeanParent = visitQueryBeanParent; } - public EsQueryProxy(Class targetInterface, boolean visitQueryBeanParent, EsProxyExecuteHandler esProxyExecuteHandler, boolean enableLogOutEsQueryJson) { + public EsQueryProxy(Class targetInterface, boolean visitQueryBeanParent, EsProxyExecuteHandler esProxyExecuteHandler, boolean enableLogOut) { this.targetInterface = targetInterface; this.visitQueryBeanParent = visitQueryBeanParent; this.esProxyExecuteHandler = esProxyExecuteHandler; - this.enableLogOutEsQueryJson = enableLogOutEsQueryJson; + this.enableLogOut = enableLogOut; } @Override diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/model/EsBaseExecuteHandle.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/model/EsBaseExecuteHandle.java index cb56165..6fc1151 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/model/EsBaseExecuteHandle.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/model/EsBaseExecuteHandle.java @@ -4,11 +4,13 @@ import com.elasticsearch.engine.base.common.parse.ann.model.EsQueryEngine; import com.elasticsearch.engine.base.common.parse.ann.model.QueryAnnParser; import com.elasticsearch.engine.base.common.utils.JsonParser; +import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; import com.elasticsearch.engine.base.config.EsEngineConfig; import com.elasticsearch.engine.base.holder.AbstractEsRequestHolder; import com.elasticsearch.engine.base.hook.RequestHook; import com.elasticsearch.engine.base.hook.ResponseHook; import com.elasticsearch.engine.base.mapping.annotation.Aggs; +import com.elasticsearch.engine.base.model.constant.CommonConstant; import com.elasticsearch.engine.base.model.constant.EsConstant; import com.elasticsearch.engine.base.model.domain.BaseResp; import com.elasticsearch.engine.base.model.domain.DefaultAggResp; @@ -54,6 +56,7 @@ public class EsBaseExecuteHandle extends AbstractEsBaseExecuteHandle { */ @Override public void executePostProcessorBefore(Object param, AbstractEsRequestHolder esHolder) { + String methodName = ThreadLocalUtil.get(CommonConstant.INTERFACE_METHOD_NAME); //前置处理扩展 嵌套扩展处理 List hooks = esHolder.getRequestHooks(); if (!hooks.isEmpty()) { @@ -71,16 +74,22 @@ public void executePostProcessorBefore(Object param, AbstractEsRequestHolder esH } //前置处理es索引名动态配置 resetIndexName(esHolder); - log.info("execute-es-query-json is\n{}", esHolder.getSource().toString()); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("{} execute-es-query-json is\n{}", methodName, esHolder.getSource().toString()); + } + } @Override public void executePostProcessorAfter(Object param, SearchResponse resp, BaseResp result) { + String methodName = ThreadLocalUtil.get(CommonConstant.INTERFACE_METHOD_NAME); ResponseHook responseHook; if ((responseHook = checkResponseHook(param)) != null) { result.setResult(responseHook.handleResponse(resp)); } - log.info("execute-es-result-json is\n{}", JsonParser.asJson(result)); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("{} execute-es-result-json is\n{}", methodName, JsonParser.asJson(result)); + } } @@ -97,14 +106,15 @@ public SearchResponse execute(SearchSourceBuilder sourceBuilder, String indexNam sourceBuilder.timeout(new TimeValue(EsEngineConfig.getQueryTimeOut(), TimeUnit.SECONDS)); //ES的查询请求对象 SearchRequest searchRequest = new SearchRequest().indices(indexName).source(sourceBuilder); - log.info("execute-es-query-json is\n{}", searchRequest); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("execute-es-query-json is\n{}", searchRequest); + } try { searchResponse = restClient.search(searchRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new EsEngineQueryException("Execute Query Error, Method-invokeNative ,cause:", e); } SearchHits hitsResult = searchResponse.getHits(); - log.info("命中总记录数 ={}", hitsResult.getTotalHits()); return searchResponse; } @@ -123,14 +133,15 @@ public BaseResp execute(SearchSourceBuilder sourceBuilder, String indexNa sourceBuilder.timeout(new TimeValue(EsEngineConfig.getQueryTimeOut(), TimeUnit.SECONDS)); //ES的查询请求对象 SearchRequest searchRequest = new SearchRequest().indices(indexName).source(sourceBuilder); - log.info("execute-es-query-json is\n{}", searchRequest); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("execute-es-query-json is\n{}", searchRequest); + } try { searchResponse = restClient.search(searchRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new EsEngineQueryException("Execute Query Error, Method-invokeNativeBuildRes ,cause:", e); } SearchHits hitsResult = searchResponse.getHits(); - log.info("命中总记录数 ={}", hitsResult.getTotalHits()); return EsResponseParse.returnDefaultResult(searchResponse, responseClazz); } @@ -204,6 +215,7 @@ protected BaseResp baseExecute(Object param, Class responseClazz, Abst * @return */ public BaseResp executeAggs(Method method, Object param) { + String methodName = ThreadLocalUtil.get(CommonConstant.INTERFACE_METHOD_NAME); if (!checkExistsAggAnnotation(param)) { throw new EsEngineQueryException("param field Missing @Aggs annotation"); } @@ -219,11 +231,15 @@ public BaseResp executeAggs(Method method, Object param) { defaultAgg.setCount(bucketOneAgg.getDocCount()); records.add(defaultAgg); } - log.info("execute-es-response-json is\n{}", JsonParser.asJson(searchResponse)); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("{} execute-es-response-json is\n{}", methodName, JsonParser.asJson(searchResponse)); + } BaseResp resp = new BaseResp<>(); resp.setRecords(records); resp.setTotalHit((long) records.size()); - log.info("execute-es-result-json is\n{}", JsonParser.asJson(resp)); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("{} execute-es-result-json is\n{}", methodName, JsonParser.asJson(resp)); + } return resp; } diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/param/EsParamExecuteHandler.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/param/EsParamExecuteHandler.java index 37a18ba..03560e9 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/param/EsParamExecuteHandler.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/ann/param/EsParamExecuteHandler.java @@ -39,13 +39,20 @@ public class EsParamExecuteHandler extends AbstractEsBaseExecuteHandle { @Override public void executePostProcessorBefore(Object param, AbstractEsRequestHolder esHolder) { + String methodName = ThreadLocalUtil.get(CommonConstant.INTERFACE_METHOD_NAME); //前置处理es索引名动态配置 resetIndexName(esHolder); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("{} execute-es-query-json is\n{}", methodName, esHolder.getSource().toString()); + } } @Override public void executePostProcessorAfter(Object param, SearchResponse resp, BaseResp result) { - + String methodName = ThreadLocalUtil.get(CommonConstant.INTERFACE_METHOD_NAME); + if (EsEngineConfig.getQueryJsonLog()) { + log.info("{} execute-es-result-json is\n{}", methodName, JsonParser.asJson(result)); + } } @@ -108,7 +115,6 @@ protected BaseResp baseExecute(Class responseClazz, AbstractEsRequestH source.timeout(new TimeValue(EsEngineConfig.getQueryTimeOut(), TimeUnit.SECONDS)); //前置扩展 executePostProcessorBefore(null, esHolder); - log.info("{} execute-es-query-json is\n{}", methodName, esHolder.getSource().toString()); try { resp = restClient.search(esHolder.getRequest(), RequestOptions.DEFAULT); } catch (IOException e) { @@ -117,7 +123,6 @@ protected BaseResp baseExecute(Class responseClazz, AbstractEsRequestH //后置处理扩展 加入自定义结果解析 BaseResp result = EsResponseParse.returnDefaultResult(resp, responseClazz); executePostProcessorAfter(null, resp, result); - log.info("{} execute-es-result-json is\n{}", methodName, JsonParser.asJson(result)); ThreadLocalUtil.remove(); return result; } finally { diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java index 3b68ba5..0252a99 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java @@ -53,8 +53,10 @@ public String queryBySql(String sql, SqlFormat sqlFormat) { ipport = hosts[randomindex]; } ipport = "http://" + ipport; - log.info(ipport + constant.getSqlQueryPrefix() + sqlFormat.getFormat()); - log.info("{\"query\":\"" + sql + "\"}"); + if (EsEngineConfig.getQueryJsonLog()) { + log.info(ipport + constant.getSqlQueryPrefix() + sqlFormat.getFormat()); + log.info("{\"query\":\"" + sql + "\"}"); + } String username = elasticSearchProperties.getUsername(); String password = elasticSearchProperties.getPassword(); diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfig.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfig.java index cba7a98..e23ba3c 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfig.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfig.java @@ -112,6 +112,24 @@ public static boolean getEsQuery() { return globalConfig.esEngineConfigProperties.isEsQuery(); } + /** + * es extend(mybatis,jpa,jooq) sql转换日志开关 + * + * @return + */ + public static boolean getSqlTraceLog() { + return globalConfig.esEngineConfigProperties.isSqlTraceLog(); + } + + /** + * es query json log 日志开关 + * + * @return + */ + public static boolean getQueryJsonLog() { + return globalConfig.esEngineConfigProperties.isQueryJsonLog(); + } + /** * es extend(mybatis,jpa,jooq)查询降级 包含的接口,仅再esQuery=false时才生效 * diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java index 79a4983..f9bd161 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java @@ -50,6 +50,16 @@ public class EsEngineConfigProperties { */ private boolean esQuery = Boolean.TRUE; + /** + * es extend(mybatis,jpa,jooq) sql转换日志开关 + */ + private boolean sqlTraceLog = Boolean.FALSE; + + /** + * es query json log 日志开关 + */ + private boolean queryJsonLog = Boolean.FALSE; + /** * es extend(mybatis,jpa,jooq)查询降级 包含的接口,仅再esQuery=false时才生效 * item 为接口名 diff --git a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java index 0e7db44..3c49a3c 100644 --- a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java +++ b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java @@ -70,7 +70,7 @@ public void renderEnd(ExecuteContext ctx) { */ @Override public void executeEnd(ExecuteContext ctx) { - log.info("jooq回表执行sql: " + ctx.sql()); +// log.info("jooq回表执行sql: " + ctx.sql()); } @Override diff --git a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java index b06fa48..324b973 100644 --- a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java +++ b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java @@ -142,17 +142,23 @@ private List doQueryEs(Method method, BoundSql boundSql, Configuration config Class returnType = method.getReturnType(); //方法返回值的泛型 Class returnGenericType = AnnotationQueryCommon.getReturnGenericType(method); - log.info("原始sql: {}", boundSql.getSql()); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("原始sql: {}", boundSql.getSql()); + } //改写sql Select select = SqlParserHelper.rewriteSql(method, boundSql.getSql(), Boolean.FALSE, null); //通过反射修改sql语句 Field field = boundSql.getClass().getDeclaredField("sql"); field.setAccessible(true); field.set(boundSql, select.toString()); - log.info("改写后sql: {}", boundSql.getSql()); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("改写后sql: {}", boundSql.getSql()); + } //参数替换 String sql = SqlParamParseMybatisHelper.paramParse(configuration, boundSql); - log.info("替换参数后sql: {}", sql); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("替换参数后sql: {}", sql); + } //执行ES查询 if (List.class.isAssignableFrom(returnType) && Objects.nonNull(returnGenericType)) { result = esSqlExecuteHandler.queryBySql(sql, returnGenericType, Boolean.TRUE); @@ -167,25 +173,31 @@ private List doQueryEs(Method method, BoundSql boundSql, Configuration config private MappedStatement doQueryEsBack(Method method, BoundSql boundSql, MappedStatement ms, BackDto backDto) throws Exception { Configuration configuration = ms.getConfiguration(); String originalSql = boundSql.getSql(); - log.info("原始sql: {}", originalSql); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("原始sql: {}", originalSql); + } //改写sql Select select = SqlParserHelper.rewriteSql(method, boundSql.getSql(), Boolean.FALSE, backDto); //通过反射修改sql语句 Field field = boundSql.getClass().getDeclaredField("sql"); field.setAccessible(true); field.set(boundSql, select.toString()); - - log.info("改写后sql: {}", boundSql.getSql()); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("改写后sql: {}", boundSql.getSql()); + } //参数替换 String sql = SqlParamParseMybatisHelper.paramParse(configuration, boundSql); - log.info("替换参数后sql: {}", sql); + if (EsEngineConfig.getSqlTraceLog()) { + log.info("替换参数后sql: {}", sql); + } //执行ES查询 List esResult = esSqlExecuteHandler.queryBySql(sql, backDto.getBackColumnTyp(), Boolean.TRUE); //将原sql改写成回表sql String backSql = SqlParserHelper.rewriteBackSql(originalSql, backDto, esResult); - log.info("回表sql : {}", backSql); - + if (EsEngineConfig.getSqlTraceLog()) { + log.info("回表sql : {}", backSql); + } //替换mybatis执行的sql MappedStatement qs = newMappedStatement(ms, new BoundSqlSqlSource(boundSql)); MetaObject msObject = SystemMetaObject.forObject(qs); From 49a2e26835db2d6b10266f86fdd687eed20b9ff1 Mon Sep 17 00:00:00 2001 From: wanghaun Date: Tue, 5 Jul 2022 17:59:06 +0800 Subject: [PATCH 02/10] =?UTF-8?q?feature/20220629=5Ffix=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/common/proxy/EsEngineInterfaceScanner.java | 2 +- .../mybatis/interceptor/MybatisEsQueryInterceptor.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineInterfaceScanner.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineInterfaceScanner.java index 48ef2c6..ae5a1a9 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineInterfaceScanner.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineInterfaceScanner.java @@ -66,7 +66,7 @@ public void setResourceLoader(ResourceLoader resourceLoader) { } /** - * 对应添加了@EsHelperProxy的类生成代理 + * 对继承了BaseEsRepository的类生成代理 * 修改 BeanDefinition 并重新注册到 beanDefinitionMap * * @param registry diff --git a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java index 324b973..5e89593 100644 --- a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java +++ b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/interceptor/MybatisEsQueryInterceptor.java @@ -170,6 +170,16 @@ private List doQueryEs(Method method, BoundSql boundSql, Configuration config } + /** + * 执行es回表查询 + * + * @param method + * @param boundSql + * @param ms + * @param backDto + * @return + * @throws Exception + */ private MappedStatement doQueryEsBack(Method method, BoundSql boundSql, MappedStatement ms, BackDto backDto) throws Exception { Configuration configuration = ms.getConfiguration(); String originalSql = boundSql.getSql(); From ee761fcbea1c8373ed9e44ae53c4f3818207014b Mon Sep 17 00:00:00 2001 From: wanghaun Date: Tue, 5 Jul 2022 18:15:30 +0800 Subject: [PATCH 03/10] =?UTF-8?q?feature/20220629=5Ffix=20=E5=8C=85?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sql/SqlResponseParseHelper.java} | 117 +++++++++--------- .../proxy/EsEngineProxyBeanFactory.java | 1 - .../EsProxyExecuteHandler.java | 2 +- .../base/common/proxy/EsQueryProxy.java | 1 - .../queryhandler/sql/EsSqlExecuteHandler.java | 50 ++------ 5 files changed, 67 insertions(+), 104 deletions(-) rename elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/{utils/BeanTools.java => parse/sql/SqlResponseParseHelper.java} (58%) rename elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/{queryhandler => proxy}/EsProxyExecuteHandler.java (95%) diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/BeanTools.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParseHelper.java similarity index 58% rename from elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/BeanTools.java rename to elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParseHelper.java index 93d4fb3..6b80104 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/BeanTools.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParseHelper.java @@ -1,47 +1,75 @@ -package com.elasticsearch.engine.base.common.utils; +package com.elasticsearch.engine.base.common.parse.sql; +import com.elasticsearch.engine.base.common.utils.CaseFormatUtils; +import com.elasticsearch.engine.base.common.utils.DateUtils; +import com.elasticsearch.engine.base.common.utils.ReflectionUtils; +import com.elasticsearch.engine.base.config.EsEngineConfig; +import com.elasticsearch.engine.base.model.domain.SqlResponse; import com.elasticsearch.engine.base.model.emenu.DataType; import com.elasticsearch.engine.base.model.exception.EsEngineExecuteException; -import org.springframework.beans.BeanWrapper; -import org.springframework.beans.BeanWrapperImpl; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; -import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.math.BigDecimal; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; /** -* @author wanghuan -* @description BeanTools -* @mail 958721894@qq.com -* @date 2022/6/17 15:30 -*/ -public class BeanTools { - public static Object mapToObject(Map map, Class beanClass) throws Exception { - if (map == null) { - return null; - } - - Object obj = beanClass.newInstance(); + * @author wanghuan + * @description BeanTools + * @mail 958721894@qq.com + * @date 2022/6/17 15:30 + */ +public class SqlResponseParseHelper { - Field[] fields = obj.getClass().getDeclaredFields(); - for (Field field : fields) { - if (map.get(field.getName()) == null || StringUtils.isEmpty(map.get(field.getName()))) { - continue; - } - int mod = field.getModifiers(); - if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { - continue; + /** + * 将sql查询结果转换为指定类 + * + * @param columns + * @param rows + * @param clazz + * @param + * @return + * @throws Exception + */ + public static T generateObjBySqlReps(List columns, List rows, Class clazz, Boolean isExtendQuery) throws Exception { + if (rows.size() != columns.size()) { + throw new Exception("sql column not match"); + } + //单个结果: count,sum 结果转换 + boolean check = rows.size() == 1 && (ReflectionUtils.isBaseType(clazz) || clazz.equals(BigDecimal.class)); + if (check) { + return (T) SqlResponseParseHelper.fieldTypeCovert(DataType.getDataTypeByStr(columns.get(0).getType()), rows.get(0), clazz); + } + //entity listEntity + Map valueMap = new HashMap(32); + for (int i = 0; i < rows.size(); i++) { + SqlResponseParseHelper.NameTypeValueMap m = new SqlResponseParseHelper.NameTypeValueMap(); + m.setDataType(DataType.getDataTypeByStr(columns.get(i).getType())); + String paramName = columns.get(i).getName(); + //是否下划线转驼峰转 + if (EsEngineConfig.isNamingStrategy()) { + paramName = CaseFormatUtils.underscoreToCamel(paramName); } - field.setAccessible(true); - field.set(obj, map.get(field.getName())); + m.setFieldName(paramName); + m.setValue(rows.get(i)); + valueMap.put(paramName, m); } - return obj; + T t = (T) SqlResponseParseHelper.typeMapToObject(valueMap, clazz); + return t; } + /** + * map to object + * + * @param map + * @param beanClass + * @param + * @return + * @throws Exception + */ public static T typeMapToObject(Map map, Class beanClass) throws Exception { if (map == null) { return null; @@ -65,35 +93,6 @@ public static T typeMapToObject(Map map, Class return t; } - public static String[] getNoValuePropertyNames(Object source) { - Assert.notNull(source, "传递的参数对象不能为空"); - final BeanWrapper beanWrapper = new BeanWrapperImpl(source); - PropertyDescriptor[] pds = beanWrapper.getPropertyDescriptors(); - - Set noValuePropertySet = new HashSet<>(); - Arrays.stream(pds).forEach(pd -> { - Object propertyValue = beanWrapper.getPropertyValue(pd.getName()); - if (StringUtils.isEmpty(propertyValue)) { - noValuePropertySet.add(pd.getName()); - } else { - if (Iterable.class.isAssignableFrom(propertyValue.getClass())) { - Iterable iterable = (Iterable) propertyValue; - Iterator iterator = iterable.iterator(); - if (!iterator.hasNext()) { - noValuePropertySet.add(pd.getName()); - } - } - if (Map.class.isAssignableFrom(propertyValue.getClass())) { - Map map = (Map) propertyValue; - if (map.isEmpty()) { - noValuePropertySet.add(pd.getName()); - } - } - } - }); - String[] result = new String[noValuePropertySet.size()]; - return noValuePropertySet.toArray(result); - } /** * es参数类型转化 diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java index 05f5274..4f441c0 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsEngineProxyBeanFactory.java @@ -1,6 +1,5 @@ package com.elasticsearch.engine.base.common.proxy; -import com.elasticsearch.engine.base.common.queryhandler.EsProxyExecuteHandler; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.beans.BeansException; import org.springframework.beans.factory.FactoryBean; diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/EsProxyExecuteHandler.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsProxyExecuteHandler.java similarity index 95% rename from elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/EsProxyExecuteHandler.java rename to elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsProxyExecuteHandler.java index e82b821..ff94ac7 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/EsProxyExecuteHandler.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsProxyExecuteHandler.java @@ -1,4 +1,4 @@ -package com.elasticsearch.engine.base.common.queryhandler; +package com.elasticsearch.engine.base.common.proxy; import com.elasticsearch.engine.base.common.proxy.enums.EsQueryType; import com.elasticsearch.engine.base.common.proxy.handler.EsQueryProxyExecuteFactory; diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java index cecea4b..076b3fb 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/proxy/EsQueryProxy.java @@ -1,6 +1,5 @@ package com.elasticsearch.engine.base.common.proxy; -import com.elasticsearch.engine.base.common.queryhandler.EsProxyExecuteHandler; import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; import com.elasticsearch.engine.base.model.constant.CommonConstant; import org.slf4j.Logger; diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java index 0252a99..1540a68 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java @@ -1,11 +1,12 @@ package com.elasticsearch.engine.base.common.queryhandler.sql; -import com.elasticsearch.engine.base.common.utils.*; +import com.elasticsearch.engine.base.common.parse.sql.SqlResponseParseHelper; +import com.elasticsearch.engine.base.common.utils.HttpClientTool; +import com.elasticsearch.engine.base.common.utils.JsonParser; import com.elasticsearch.engine.base.config.ElasticSearchProperties; import com.elasticsearch.engine.base.config.EsEngineConfig; import com.elasticsearch.engine.base.model.constant.CommonConstant; import com.elasticsearch.engine.base.model.domain.SqlResponse; -import com.elasticsearch.engine.base.model.emenu.DataType; import com.elasticsearch.engine.base.model.emenu.EsVersionConstant; import com.elasticsearch.engine.base.model.emenu.SqlFormat; import com.elasticsearch.engine.base.model.exception.EsEngineQueryException; @@ -15,8 +16,10 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Random; /** * @author wanghuan @@ -128,7 +131,7 @@ public List queryBySql(String sql, Class clazz, Boolean isExtendQuery) if (!CollectionUtils.isEmpty(sqlResponse.getRows())) { for (List row : sqlResponse.getRows()) { try { - result.add(generateObjBySqlReps(sqlResponse.getColumns(), row, clazz, isExtendQuery)); + result.add(SqlResponseParseHelper.generateObjBySqlReps(sqlResponse.getColumns(), row, clazz, isExtendQuery)); } catch (Exception e) { throw new RuntimeException(e); } @@ -138,41 +141,4 @@ public List queryBySql(String sql, Class clazz, Boolean isExtendQuery) } - /** - * 将sql查询结果转换为指定类 - * - * @param columns - * @param rows - * @param clazz - * @param - * @return - * @throws Exception - */ - private T generateObjBySqlReps(List columns, List rows, Class clazz, Boolean isExtendQuery) throws Exception { - if (rows.size() != columns.size()) { - throw new Exception("sql column not match"); - } - //单个结果: count,sum 结果转换 - boolean check = rows.size() == 1 && (ReflectionUtils.isBaseType(clazz) || clazz.equals(BigDecimal.class)); - if (check) { - return (T) BeanTools.fieldTypeCovert(DataType.getDataTypeByStr(columns.get(0).getType()), rows.get(0), clazz); - } - //entity listEntity - Map valueMap = new HashMap(32); - for (int i = 0; i < rows.size(); i++) { - BeanTools.NameTypeValueMap m = new BeanTools.NameTypeValueMap(); - m.setDataType(DataType.getDataTypeByStr(columns.get(i).getType())); - String paramName = columns.get(i).getName(); - //是否下划线转驼峰转 - if (EsEngineConfig.isNamingStrategy()) { - paramName = CaseFormatUtils.underscoreToCamel(paramName); - } - m.setFieldName(paramName); - m.setValue(rows.get(i)); - valueMap.put(paramName, m); - } - T t = (T) BeanTools.typeMapToObject(valueMap, clazz); - return t; - } - } From 86357172c6d74d445f71d114810eae8a569d8c19 Mon Sep 17 00:00:00 2001 From: wanghaun Date: Fri, 8 Jul 2022 16:37:42 +0800 Subject: [PATCH 04/10] =?UTF-8?q?feature/20220629=5Ffix=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "doc/\350\256\241\345\210\222" | 1 + .../engine/base/config/EsEngineConfigProperties.java | 2 +- .../com/elasticsearch/engine/jooq/annotion/JooqEsQuery.java | 2 +- .../java/com/elasticsearch/engine/jpa/annotion/JpaEsQuery.java | 2 +- .../elasticsearch/engine/mybatis/annotion/MybatisEsQuery.java | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git "a/doc/\350\256\241\345\210\222" "b/doc/\350\256\241\345\210\222" index 5e15129..500f3d4 100644 --- "a/doc/\350\256\241\345\210\222" +++ "b/doc/\350\256\241\345\210\222" @@ -6,6 +6,7 @@ 5)自定义注解sql查询 对象参数 (参考 mybatis和jpa实现参数解析) 6)工具类整理, http工具类优化 7)sql日志打印支持配置 +8)es 和 mysql字段映射关系支持自定义 其他: 1)@EsCondition 思考 diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java index f9bd161..55cbeba 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java @@ -26,7 +26,7 @@ public class EsEngineConfigProperties { private boolean isBuildDefault = Boolean.TRUE; /** - * 查询参及响应参数数解析是否是下划线 true解析成下划线 false按照参数名驼峰 + * 查询参及响应参数数解析是否是下划线 true解析成下划线 false按照参数名驼峰 默认值false */ private boolean namingStrategy = Boolean.FALSE; diff --git a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/annotion/JooqEsQuery.java b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/annotion/JooqEsQuery.java index 32fd4ae..5820b9c 100644 --- a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/annotion/JooqEsQuery.java +++ b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/annotion/JooqEsQuery.java @@ -18,7 +18,7 @@ * * @return */ - String tableName() default ""; + String backTable() default ""; /** * 回表字段 diff --git a/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/annotion/JpaEsQuery.java b/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/annotion/JpaEsQuery.java index 65e6231..5819421 100644 --- a/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/annotion/JpaEsQuery.java +++ b/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/annotion/JpaEsQuery.java @@ -18,7 +18,7 @@ * * @return */ - String tableName() default ""; + String backTable() default ""; /** * 回表字段 diff --git a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/annotion/MybatisEsQuery.java b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/annotion/MybatisEsQuery.java index 6d562c5..a659bf8 100644 --- a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/annotion/MybatisEsQuery.java +++ b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/annotion/MybatisEsQuery.java @@ -19,7 +19,7 @@ * * @return */ - String tableName() default ""; + String backTable() default ""; /** * 回表字段 From 2bb19ec938a419419622b59a299339479702ba3a Mon Sep 17 00:00:00 2001 From: wanghaun Date: Fri, 8 Jul 2022 16:37:56 +0800 Subject: [PATCH 05/10] =?UTF-8?q?feature/20220629=5Ffix=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lResponseParseHelper.java => SqlResponseParse.java} | 10 +++++----- .../common/queryhandler/sql/EsSqlExecuteHandler.java | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) rename elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/{SqlResponseParseHelper.java => SqlResponseParse.java} (92%) diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParseHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParse.java similarity index 92% rename from elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParseHelper.java rename to elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParse.java index 6b80104..7846db8 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParseHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlResponseParse.java @@ -22,7 +22,7 @@ * @mail 958721894@qq.com * @date 2022/6/17 15:30 */ -public class SqlResponseParseHelper { +public class SqlResponseParse { /** * 将sql查询结果转换为指定类 @@ -41,12 +41,12 @@ public static T generateObjBySqlReps(List columns, L //单个结果: count,sum 结果转换 boolean check = rows.size() == 1 && (ReflectionUtils.isBaseType(clazz) || clazz.equals(BigDecimal.class)); if (check) { - return (T) SqlResponseParseHelper.fieldTypeCovert(DataType.getDataTypeByStr(columns.get(0).getType()), rows.get(0), clazz); + return (T) SqlResponseParse.fieldTypeCovert(DataType.getDataTypeByStr(columns.get(0).getType()), rows.get(0), clazz); } //entity listEntity - Map valueMap = new HashMap(32); + Map valueMap = new HashMap(32); for (int i = 0; i < rows.size(); i++) { - SqlResponseParseHelper.NameTypeValueMap m = new SqlResponseParseHelper.NameTypeValueMap(); + SqlResponseParse.NameTypeValueMap m = new SqlResponseParse.NameTypeValueMap(); m.setDataType(DataType.getDataTypeByStr(columns.get(i).getType())); String paramName = columns.get(i).getName(); //是否下划线转驼峰转 @@ -57,7 +57,7 @@ public static T generateObjBySqlReps(List columns, L m.setValue(rows.get(i)); valueMap.put(paramName, m); } - T t = (T) SqlResponseParseHelper.typeMapToObject(valueMap, clazz); + T t = (T) SqlResponseParse.typeMapToObject(valueMap, clazz); return t; } diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java index 1540a68..75ba7aa 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/queryhandler/sql/EsSqlExecuteHandler.java @@ -1,6 +1,6 @@ package com.elasticsearch.engine.base.common.queryhandler.sql; -import com.elasticsearch.engine.base.common.parse.sql.SqlResponseParseHelper; +import com.elasticsearch.engine.base.common.parse.sql.SqlResponseParse; import com.elasticsearch.engine.base.common.utils.HttpClientTool; import com.elasticsearch.engine.base.common.utils.JsonParser; import com.elasticsearch.engine.base.config.ElasticSearchProperties; @@ -131,7 +131,7 @@ public List queryBySql(String sql, Class clazz, Boolean isExtendQuery) if (!CollectionUtils.isEmpty(sqlResponse.getRows())) { for (List row : sqlResponse.getRows()) { try { - result.add(SqlResponseParseHelper.generateObjBySqlReps(sqlResponse.getColumns(), row, clazz, isExtendQuery)); + result.add(SqlResponseParse.generateObjBySqlReps(sqlResponse.getColumns(), row, clazz, isExtendQuery)); } catch (Exception e) { throw new RuntimeException(e); } From 7076b4bd08ceec8f1563a6656413dd56d7f47fef Mon Sep 17 00:00:00 2001 From: wanghaun Date: Fri, 8 Jul 2022 17:13:02 +0800 Subject: [PATCH 06/10] =?UTF-8?q?feature/20220629=5Ffix=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/elasticsearch/engine/jooq/model/JooqBackDto.java | 2 +- .../java/com/elasticsearch/engine/jpa/model/JpaBackDto.java | 2 +- .../com/elasticsearch/engine/mybatis/model/MybatisBackDto.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/model/JooqBackDto.java b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/model/JooqBackDto.java index 9fc0c1c..a1b0f27 100644 --- a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/model/JooqBackDto.java +++ b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/model/JooqBackDto.java @@ -18,7 +18,7 @@ public class JooqBackDto extends BackDto { public static BackDto hasJooqBack(Method method) { JooqEsQuery esQuery = method.getAnnotation(JooqEsQuery.class); String backColumn = esQuery.backColumn(); - String tableName = esQuery.tableName(); + String tableName = esQuery.backTable(); Class backColumnTyp = esQuery.backColumnType(); if (StringUtils.isNotEmpty(backColumn) && Objects.nonNull(backColumnTyp) && !backColumnTyp.equals(Objects.class)) { return BackDto.builder().tableName(tableName).backColumn(backColumn).backColumnTyp(backColumnTyp).build(); diff --git a/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/model/JpaBackDto.java b/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/model/JpaBackDto.java index 59b0786..8de9c55 100644 --- a/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/model/JpaBackDto.java +++ b/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/model/JpaBackDto.java @@ -18,7 +18,7 @@ public class JpaBackDto extends BackDto { public static BackDto hasJpaBack(Method method) { JpaEsQuery esQuery = method.getAnnotation(JpaEsQuery.class); String backColumn = esQuery.backColumn(); - String tableName = esQuery.tableName(); + String tableName = esQuery.backTable(); Class backColumnTyp = esQuery.backColumnType(); if (StringUtils.isNotEmpty(backColumn) && Objects.nonNull(backColumnTyp) && !backColumnTyp.equals(Objects.class)) { return BackDto.builder().tableName(tableName).backColumn(backColumn).backColumnTyp(backColumnTyp).build(); diff --git a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/model/MybatisBackDto.java b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/model/MybatisBackDto.java index 7667518..41e6a29 100644 --- a/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/model/MybatisBackDto.java +++ b/elasticsearch-engine-mybatis/src/main/java/com/elasticsearch/engine/mybatis/model/MybatisBackDto.java @@ -18,7 +18,7 @@ public class MybatisBackDto extends BackDto { public static BackDto hasBack(Method method) { MybatisEsQuery esQuery = method.getAnnotation(MybatisEsQuery.class); String backColumn = esQuery.backColumn(); - String tableName = esQuery.tableName(); + String tableName = esQuery.backTable(); Class backColumnTyp = esQuery.backColumnType(); if (StringUtils.isNotEmpty(backColumn) && Objects.nonNull(backColumnTyp) && !backColumnTyp.equals(Objects.class)) { return BackDto.builder().tableName(tableName).backColumn(backColumn).backColumnTyp(backColumnTyp).build(); From 6ee5c1e064de6c9594913b26d9312c0a53a2218f Mon Sep 17 00:00:00 2001 From: wanghaun Date: Fri, 15 Jul 2022 22:45:00 +0800 Subject: [PATCH 07/10] =?UTF-8?q?feature/20220629=5Ffix=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9Emysql=20es=20=E5=AD=97=E6=AE=B5=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/parse/sql/EsSqlQueryHelper.java | 3 +- .../common/parse/sql/SqlParamParseHelper.java | 7 +- .../common/parse/sql/SqlParserHelper.java | 79 ++++++++++++------- .../base/common/utils/LocalStringUtils.java | 30 +++++++ .../base/common/utils/ReflectionUtils.java | 66 ++++++++++++++-- .../engine/base/model/annotion/ESColumn.java | 20 +++++ .../base/model/constant/CommonConstant.java | 7 +- 7 files changed, 171 insertions(+), 41 deletions(-) create mode 100644 elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/LocalStringUtils.java create mode 100644 elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/annotion/ESColumn.java diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java index 2416ffc..0bfc4ae 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java @@ -2,6 +2,7 @@ import com.elasticsearch.engine.base.common.proxy.handler.exannotation.AnnotationQueryCommon; import com.elasticsearch.engine.base.common.queryhandler.sql.EsSqlExecuteHandler; +import com.elasticsearch.engine.base.common.utils.LocalStringUtils; import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; import com.elasticsearch.engine.base.config.EsEngineConfig; import com.elasticsearch.engine.base.model.constant.CommonConstant; @@ -141,7 +142,7 @@ private String fillParamSql(Method method, String sql, Object[] args, BackDto ba //参数替换 // 解析sql参数 //jooq 需要替换"`" - String selectSql = select.toString().replaceAll("`", ""); + String selectSql = LocalStringUtils.replaceSlightPauseMark(select.toString()); String paramSql = SqlParamParseHelper.getMethodArgsSqlJpa(selectSql, method, args, SqlParamParse.JAP_SQL_PARAM); if (EsEngineConfig.getSqlTraceLog()) { log.info("替换参数后sql: {}", paramSql); diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParamParseHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParamParseHelper.java index 03b7b8e..b224d9e 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParamParseHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParamParseHelper.java @@ -237,12 +237,11 @@ private static String renderStringJpa(String sql, List param, SqlParamPa */ public static String getListParameterValue(Object val) { List listParam = (List) val; - StringBuffer sb = new StringBuffer(); + StringJoiner sj = new StringJoiner(","); if (!listParam.isEmpty()) { - listParam.forEach(item -> sb.append(getParameterValue(item)).append(",")); + listParam.forEach(item -> sj.add(getParameterValue(item))); } - String param = sb.toString(); - return param.substring(0, param.length() - 1); + return sj.toString(); } /** diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java index 42ed578..a2aa17f 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java @@ -1,8 +1,11 @@ package com.elasticsearch.engine.base.common.parse.sql; import com.elasticsearch.engine.base.common.utils.CaseFormatUtils; +import com.elasticsearch.engine.base.common.utils.LocalStringUtils; +import com.elasticsearch.engine.base.common.utils.ReflectionUtils; import com.elasticsearch.engine.base.config.EsEngineConfig; import com.elasticsearch.engine.base.model.annotion.EsQueryIndex; +import com.elasticsearch.engine.base.model.constant.CommonConstant; import com.elasticsearch.engine.base.model.domain.BackDto; import com.elasticsearch.engine.base.model.exception.EsEngineQueryException; import com.google.common.collect.Lists; @@ -19,6 +22,7 @@ import net.sf.jsqlparser.util.SelectUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import java.io.StringReader; import java.lang.reflect.Method; @@ -47,24 +51,26 @@ public static Select rewriteSql(Method method, String oldSql, Boolean isCleanAs, CCJSqlParserManager parserManager = new CCJSqlParserManager(); Select select = (Select) parserManager.parse(new StringReader(oldSql)); PlainSelect plain = (PlainSelect) select.getSelectBody(); + Map tableNames = getJoinTableName(plain); + Map tableAlias = ReflectionUtils.getEsAlias(method, tableNames); //替换表名 setTableItem(method, plain); //清除关联 plain.setJoins(Lists.newArrayList()); //from 别名清除 if (Objects.isNull(backDto)) { - setSelectItem(plain, isCleanAs); + setSelectItem(plain, isCleanAs, tableAlias); } else { setSelectItem(select, backDto); } //where 别名清除 - setWhereItem(plain.getWhere()); + setWhereItem(plain.getWhere(), tableAlias); //group by 别名清除 - setGroupItem(plain.getGroupBy()); + setGroupItem(plain.getGroupBy(), tableAlias); //having - setHavingItem(plain.getHaving()); + setHavingItem(plain.getHaving(), tableAlias); //order by 别名清除 - setOrderItem(plain.getOrderByElements()); + setOrderItem(plain.getOrderByElements(), tableAlias); return select; } @@ -116,6 +122,7 @@ private static void setBackWhereItem(PlainSelect plain, BackDto backDto, List /** * 回去回表查询表名 + * * @param plain * @param backDto * @return @@ -165,7 +172,7 @@ private static Map getJoinTableName(PlainSelect plain) { fromItems.forEach(fromItem -> { String fromItemName = ""; if (fromItem instanceof Table) { - fromItemName = ((Table) fromItem).getName().replaceAll("`", ""); + fromItemName = LocalStringUtils.replaceSlightPauseMark(((Table) fromItem).getName()); } tableNames.put(fromItemName, fromItem.getAlias() == null ? fromItemName : fromItem.getAlias().getName()); }); @@ -194,19 +201,19 @@ private static void setTableItem(Method method, PlainSelect plain) { * @param plainSelect * @return */ - public static void setSelectItem(PlainSelect plainSelect, Boolean isCleanAs) { + public static void setSelectItem(PlainSelect plainSelect, Boolean isCleanAs, Map tableAlias) { for (SelectItem selectItem : plainSelect.getSelectItems()) { selectItem.accept(new SelectItemVisitorAdapter() { @Override public void visit(SelectExpressionItem item) { if (item.getExpression() instanceof Function) { - setFunction((Function) item.getExpression()); + setFunction((Function) item.getExpression(), tableAlias); } else if (item.getExpression() instanceof CaseExpression) { - setCaseExpression((CaseExpression) item.getExpression()); + setCaseExpression((CaseExpression) item.getExpression(), tableAlias); } else if (item.getExpression() instanceof Column) { Column column = (Column) item.getExpression(); //清除t. - reNameColumnName(column); + reNameColumnName(column, tableAlias); column.setTable(new Table()); } //清除as @@ -240,7 +247,7 @@ private static void setSelectItem(Select select, BackDto backDto) { * @param * @return */ - public static void setWhereItem(Expression where) { + public static void setWhereItem(Expression where, Map tableAlias) { if (where == null) { return; } @@ -263,23 +270,23 @@ public static void setWhereItem(Expression where) { } if (rightExpression instanceof Column) { Column rightColumn = (Column) rightExpression; - reNameColumnName(rightColumn); + reNameColumnName(rightColumn, tableAlias); //清除表别名 rightColumn.setTable(new Table()); } else if (rightExpression instanceof Function) { - setFunction((Function) rightExpression); + setFunction((Function) rightExpression, tableAlias); } else { - setWhereItem(rightExpression); + setWhereItem(rightExpression, tableAlias); } if (leftExpression instanceof Column) { Column leftColumn = (Column) leftExpression; - reNameColumnName(leftColumn); + reNameColumnName(leftColumn, tableAlias); //清除表别名 leftColumn.setTable(new Table()); } else if (leftExpression instanceof Function) { - setFunction((Function) leftExpression); + setFunction((Function) leftExpression, tableAlias); } else { - setWhereItem(leftExpression); + setWhereItem(leftExpression, tableAlias); } } @@ -288,7 +295,7 @@ public static void setWhereItem(Expression where) { * * @param groupBy */ - private static void setGroupItem(GroupByElement groupBy) { + private static void setGroupItem(GroupByElement groupBy, Map tableAlias) { if (groupBy == null) { return; } @@ -296,7 +303,7 @@ private static void setGroupItem(GroupByElement groupBy) { groupByExpressions.forEach(item -> { if (item instanceof Column) { Column groupColumn = (Column) item; - reNameColumnName(groupColumn); + reNameColumnName(groupColumn, tableAlias); groupColumn.setTable(new Table()); } }); @@ -307,11 +314,11 @@ private static void setGroupItem(GroupByElement groupBy) { * * @param having */ - private static void setHavingItem(Expression having) { + private static void setHavingItem(Expression having, Map tableAlias) { if (having == null) { return; } - setWhereItem(having); + setWhereItem(having, tableAlias); } /** @@ -319,7 +326,7 @@ private static void setHavingItem(Expression having) { * * @param orderByElements */ - private static void setOrderItem(List orderByElements) { + private static void setOrderItem(List orderByElements, Map tableAlias) { if (CollectionUtils.isEmpty(orderByElements)) { return; } @@ -327,7 +334,7 @@ private static void setOrderItem(List orderByElements) { Expression expression = item.getExpression(); if (expression instanceof Column) { Column groupColumn = (Column) expression; - reNameColumnName(groupColumn); + reNameColumnName(groupColumn, tableAlias); groupColumn.setTable(new Table()); } }); @@ -339,17 +346,17 @@ private static void setOrderItem(List orderByElements) { * * @param function */ - private static void setFunction(Function function) { + private static void setFunction(Function function, Map tableAlias) { if (function.getParameters() == null || function.getParameters().getExpressions() == null) { return; } List list = function.getParameters().getExpressions(); list.forEach(data -> { if (data instanceof Function) { - setFunction((Function) data); + setFunction((Function) data, tableAlias); } else if (data instanceof Column) { Column column = (Column) data; - reNameColumnName(column); + reNameColumnName(column, tableAlias); //清除表别名 column.setTable(new Table()); } @@ -362,14 +369,14 @@ private static void setFunction(Function function) { * @param caseExpression * @return */ - public static void setCaseExpression(CaseExpression caseExpression) { + public static void setCaseExpression(CaseExpression caseExpression, Map tableAlias) { if (caseExpression.getWhenClauses() == null) { return; } List list = caseExpression.getWhenClauses(); list.forEach(data -> { if (data instanceof WhenClause) { - setWhereItem(((WhenClause) data).getWhenExpression()); + setWhereItem(((WhenClause) data).getWhenExpression(), tableAlias); } }); } @@ -379,7 +386,21 @@ public static void setCaseExpression(CaseExpression caseExpression) { * * @param column */ - private static void reNameColumnName(Column column) { + private static void reNameColumnName(Column column, Map tableAlias) { + //替换mysql和es的别名映射 + if (!tableAlias.isEmpty()) { + //替换掉'`'主要针对jooq + String columnName = LocalStringUtils.replaceSlightPauseMark(column.toString()); + //判断是否包含两个'.' 替换掉jooq的 `user`.(jooq生成的字段格式为 `user`.`person`.`person_no`) + int n = columnName.length() - LocalStringUtils.replaceSpot(columnName).length(); + if (n > NumberUtils.INTEGER_ONE && columnName.contains(CommonConstant.JOOQ_SQL_COLUMN_PREFIX)) { + columnName = columnName.replaceAll(CommonConstant.JOOQ_SQL_COLUMN_PREFIX, ""); + } + if (tableAlias.containsKey(columnName)) { + column.setColumnName(tableAlias.get(columnName)); + } + } + //清除t. if (!EsEngineConfig.isNamingStrategy()) { String columnName = column.getColumnName(); columnName = CaseFormatUtils.underscoreToCamel(columnName); diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/LocalStringUtils.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/LocalStringUtils.java new file mode 100644 index 0000000..07e436b --- /dev/null +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/LocalStringUtils.java @@ -0,0 +1,30 @@ +package com.elasticsearch.engine.base.common.utils; + +/** + * @author wanghuan + * @description StringUtils + * @mail 958721894@qq.com + * @date 2022-07-15 22:24 + */ +public class LocalStringUtils { + + /** + * 替换string中的'`' + * + * @param str + * @return + */ + public static String replaceSlightPauseMark(String str) { + return str.replaceAll("`", ""); + } + + /** + * 替换string中的'.' + * + * @param str + * @return + */ + public static String replaceSpot(String str) { + return str.replaceAll("\\.", ""); + } +} diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/ReflectionUtils.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/ReflectionUtils.java index f1efa54..e3f636b 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/ReflectionUtils.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/utils/ReflectionUtils.java @@ -2,7 +2,12 @@ import com.elasticsearch.engine.base.common.parse.sql.SqlParamParseHelper; +import com.elasticsearch.engine.base.common.proxy.handler.exannotation.AnnotationQueryCommon; +import com.elasticsearch.engine.base.model.annotion.ESColumn; +import com.elasticsearch.engine.base.model.annotion.EsQueryIndex; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.apache.commons.lang3.StringUtils; import java.lang.reflect.*; import java.math.BigDecimal; @@ -190,16 +195,16 @@ public static boolean isExtendsType(Class type) { /** * 获取对象的filed name 和 value,支持嵌套 * file 的name 格式为 为 objectName.filedName的形式 - * + * * @param view * @param paramName * @return * @throws IllegalAccessException */ - public static Map getNestedFieldsMap(String paramName,Object view) { + public static Map getNestedFieldsMap(String paramName, Object view) { Map map = new HashMap<>(26); try { - getFields(view,map, paramName); + getFields(view, map, paramName); } catch (IllegalAccessException e) { throw new RuntimeException(e); } @@ -208,6 +213,7 @@ public static Map getNestedFieldsMap(String paramName,Object vie /** * 递归获取对象的 filed name 和 value + * * @param view * @param map * @param parentName @@ -220,13 +226,61 @@ public static void getFields(Object view, Map map, String parent field.setAccessible(true); String name = parentName + "." + field.getName(); Object val = field.get(view); - if(isBaseTypeAndExtend(field.getType())){ + if (isBaseTypeAndExtend(field.getType())) { String parameterVal = SqlParamParseHelper.getParameterValue(val); map.put(name, parameterVal); - }else{ - getFields(val,map,name); + } else { + getFields(val, map, name); + } + } + } + + /** + * 获取mybatis映射es的字段别名 + * + * @param method + * @return + */ + public static Map getEsAlias(Method method, Map tableNames) { + //方法返回值 + Class queryIndex = null; + Class returnType = method.getReturnType(); + if (Objects.nonNull(returnType.getAnnotation(EsQueryIndex.class))) { + queryIndex = returnType; + } + //方法返回值的泛型 + Class returnGenericType = AnnotationQueryCommon.getReturnGenericType(method); + if (Objects.isNull(queryIndex) && Objects.nonNull(returnGenericType) && Objects.nonNull(returnGenericType.getAnnotation(EsQueryIndex.class))) { + queryIndex = returnGenericType; + } + + Map table = Maps.newHashMap(); + if (Objects.nonNull(queryIndex)) { + Field[] fieldArr = queryIndex.getDeclaredFields(); + for (Field field : fieldArr) { + field.setAccessible(true); + ESColumn esColumn = field.getAnnotation(ESColumn.class); + if (Objects.nonNull(esColumn)) { + table.put(getSqlColumn(esColumn, tableNames), esColumn.esColumn()); + } } } + return table; + } + + /** + * getSqlColumn + * + * @param esColumn + * @param tableNames + * @return + */ + private static String getSqlColumn(ESColumn esColumn, Map tableNames) { + String tableName = tableNames.get(esColumn.table()); + if (StringUtils.isNotEmpty(tableName)) { + return tableName + "." + esColumn.sqlColumn(); + } + return esColumn.sqlColumn(); } } diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/annotion/ESColumn.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/annotion/ESColumn.java new file mode 100644 index 0000000..e7de8a0 --- /dev/null +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/annotion/ESColumn.java @@ -0,0 +1,20 @@ +package com.elasticsearch.engine.base.model.annotion; + +import java.lang.annotation.*; + +/** + * @author wanghuan + * @description ESColumn + * @date 2022/7/15 17:03 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) +@Documented +public @interface ESColumn { + + String table() default ""; + + String sqlColumn() default ""; + + String esColumn() default ""; +} diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java index f5e0dc7..f314295 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java @@ -71,8 +71,13 @@ public class CommonConstant { /** * es客户端版本为7, es版本为6的格式为 GMT+8 - * 日期查询默认的时间时区 + * 日期查询默认的时间时区 */ public static final String DEFAULT_TIME_ZONE = "+08:00"; + /** + * jooq COLUMN 前缀 + */ + public static final String JOOQ_SQL_COLUMN_PREFIX = "user."; + } From c30305c58400ce76fd082dc079261d83a98b7f9c Mon Sep 17 00:00:00 2001 From: wanghaun Date: Tue, 19 Jul 2022 11:09:41 +0800 Subject: [PATCH 08/10] =?UTF-8?q?feature/20220629=5Ffix=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/common/parse/sql/EsSqlQueryHelper.java | 5 +---- .../base/common/parse/sql/SqlParserHelper.java | 16 +++++++--------- .../base/config/EsEngineConfigProperties.java | 2 +- .../base/model/constant/CommonConstant.java | 14 ++++++++++++-- .../listener/JooqEsQueryExecuteListener.java | 17 ++++++++++++++--- 5 files changed, 35 insertions(+), 19 deletions(-) diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java index 0bfc4ae..9cd419e 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java @@ -2,7 +2,6 @@ import com.elasticsearch.engine.base.common.proxy.handler.exannotation.AnnotationQueryCommon; import com.elasticsearch.engine.base.common.queryhandler.sql.EsSqlExecuteHandler; -import com.elasticsearch.engine.base.common.utils.LocalStringUtils; import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; import com.elasticsearch.engine.base.config.EsEngineConfig; import com.elasticsearch.engine.base.model.constant.CommonConstant; @@ -141,9 +140,7 @@ private String fillParamSql(Method method, String sql, Object[] args, BackDto ba } //参数替换 // 解析sql参数 - //jooq 需要替换"`" - String selectSql = LocalStringUtils.replaceSlightPauseMark(select.toString()); - String paramSql = SqlParamParseHelper.getMethodArgsSqlJpa(selectSql, method, args, SqlParamParse.JAP_SQL_PARAM); + String paramSql = SqlParamParseHelper.getMethodArgsSqlJpa(select.toString(), method, args, SqlParamParse.JAP_SQL_PARAM); if (EsEngineConfig.getSqlTraceLog()) { log.info("替换参数后sql: {}", paramSql); } diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java index a2aa17f..65d0da8 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java @@ -5,7 +5,6 @@ import com.elasticsearch.engine.base.common.utils.ReflectionUtils; import com.elasticsearch.engine.base.config.EsEngineConfig; import com.elasticsearch.engine.base.model.annotion.EsQueryIndex; -import com.elasticsearch.engine.base.model.constant.CommonConstant; import com.elasticsearch.engine.base.model.domain.BackDto; import com.elasticsearch.engine.base.model.exception.EsEngineQueryException; import com.google.common.collect.Lists; @@ -172,7 +171,7 @@ private static Map getJoinTableName(PlainSelect plain) { fromItems.forEach(fromItem -> { String fromItemName = ""; if (fromItem instanceof Table) { - fromItemName = LocalStringUtils.replaceSlightPauseMark(((Table) fromItem).getName()); + fromItemName = ((Table) fromItem).getName(); } tableNames.put(fromItemName, fromItem.getAlias() == null ? fromItemName : fromItem.getAlias().getName()); }); @@ -375,8 +374,8 @@ public static void setCaseExpression(CaseExpression caseExpression, Map list = caseExpression.getWhenClauses(); list.forEach(data -> { - if (data instanceof WhenClause) { - setWhereItem(((WhenClause) data).getWhenExpression(), tableAlias); + if (data != null) { + setWhereItem(data.getWhenExpression(), tableAlias); } }); } @@ -389,12 +388,11 @@ public static void setCaseExpression(CaseExpression caseExpression, Map tableAlias) { //替换mysql和es的别名映射 if (!tableAlias.isEmpty()) { - //替换掉'`'主要针对jooq - String columnName = LocalStringUtils.replaceSlightPauseMark(column.toString()); - //判断是否包含两个'.' 替换掉jooq的 `user`.(jooq生成的字段格式为 `user`.`person`.`person_no`) + String columnName = column.toString(); + //判断是否包含两个'.' 替换掉jooq的库名(jooq生成的字段格式为 `user`.`person`.`person_no`) int n = columnName.length() - LocalStringUtils.replaceSpot(columnName).length(); - if (n > NumberUtils.INTEGER_ONE && columnName.contains(CommonConstant.JOOQ_SQL_COLUMN_PREFIX)) { - columnName = columnName.replaceAll(CommonConstant.JOOQ_SQL_COLUMN_PREFIX, ""); + if (n > NumberUtils.INTEGER_ONE) { + columnName = columnName.substring(columnName.indexOf(".") + 1); } if (tableAlias.containsKey(columnName)) { column.setColumnName(tableAlias.get(columnName)); diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java index 55cbeba..c22feae 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/config/EsEngineConfigProperties.java @@ -18,7 +18,7 @@ public class EsEngineConfigProperties { /** * elasticSearch version */ - private Integer elasticVersion = 7; + private Integer elasticVersion = 6; /** * 对没有添加注解的字段 默然按照trem/trems查询 diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java index f314295..7129705 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/model/constant/CommonConstant.java @@ -76,8 +76,18 @@ public class CommonConstant { public static final String DEFAULT_TIME_ZONE = "+08:00"; /** - * jooq COLUMN 前缀 + * jooq BETWEEN 格式 */ - public static final String JOOQ_SQL_COLUMN_PREFIX = "user."; + public static final String JOOQ_SQL_BETWEEN = "between {ts"; + + /** + * jooq BETWEEN 前缀 + */ + public static final String JOOQ_SQL_BETWEEN_PREFIX = "\\{ts"; + + /** + * jooq BETWEEN 后缀 + */ + public static final String JOOQ_SQL_BETWEEN_SUFFIX = "\\}"; } diff --git a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java index 3c49a3c..949ae6a 100644 --- a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java +++ b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/listener/JooqEsQueryExecuteListener.java @@ -1,5 +1,6 @@ package com.elasticsearch.engine.jooq.listener; +import com.elasticsearch.engine.base.common.utils.LocalStringUtils; import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; import com.elasticsearch.engine.base.model.constant.CommonConstant; import com.elasticsearch.engine.base.model.exception.EsEngineJpaExecuteException; @@ -59,7 +60,7 @@ public void renderEnd(ExecuteContext ctx) { // ctx.sql("SELECT `user`.`person`.`id`, `user`.`person`.`person_no`, `user`.`person`.`person_name`, `user`.`person`.`phone`, `user`.`person`.`salary`, `user`.`person`.`company`, `user`.`person`.`status`, `user`.`person`.`sex`, `user`.`person`.`address`, `user`.`person`.`create_time`, `user`.`person`.`create_user` FROM `user`.`person` WHERE `user`.`person`.`status` = ? AND person_no IN ('US2022060100001', 'US2022060100023')"); ctx.sql(backSql); } else { - ThreadLocalUtil.set(CommonConstant.JPA_NATIVE_SQL, ctx.sql()); + ThreadLocalUtil.set(CommonConstant.JPA_NATIVE_SQL, sqlTransform(Objects.requireNonNull(ctx.sql()))); } } @@ -98,7 +99,7 @@ public void bindEnd(ExecuteContext ctx) { if (Objects.isNull(isEsQuery)) { return; } - String sql = ctx.query().toString(); + String sql = Objects.requireNonNull(ctx.query()).toString(); //非select语句直接返回 if (!sql.trim().startsWith(CommonConstant.SELECT_SQL_PREFIX_LOWER) && !sql.trim().startsWith(CommonConstant.SELECT_SQL_PREFIX_UPPER)) { return; @@ -106,7 +107,7 @@ public void bindEnd(ExecuteContext ctx) { String backSql = ThreadLocalUtil.get(CommonConstant.BACK_QUERY_SQL); if (StringUtils.isEmpty(backSql)) { - throw new EsEngineJpaExecuteException(sql); + throw new EsEngineJpaExecuteException(sqlTransform(sql)); } } @@ -131,4 +132,14 @@ public void bindEnd(ExecuteContext ctx) { // } // } + private String sqlTransform(String sql) { + //jooq 需要替换"`" + sql = LocalStringUtils.replaceSlightPauseMark(sql); + //处理jooq生成的between + if (sql.contains(CommonConstant.JOOQ_SQL_BETWEEN)) { + return sql.replaceAll(CommonConstant.JOOQ_SQL_BETWEEN_PREFIX, "").replaceAll(CommonConstant.JOOQ_SQL_BETWEEN_SUFFIX, ""); + } + return sql; + } + } \ No newline at end of file From 218a319908a4d7a5cf9396ce292076b2f1ac1fca Mon Sep 17 00:00:00 2001 From: wanghaun Date: Tue, 19 Jul 2022 14:44:31 +0800 Subject: [PATCH 09/10] =?UTF-8?q?feature/20220629=5Ffix=20fix=20=E5=9B=9E?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/parse/sql/EsSqlQueryHelper.java | 36 ++++++++++--- .../common/parse/sql/SqlParserHelper.java | 6 +++ .../engine/jooq/aop/JooqEsQueryAop.java | 48 +----------------- .../engine/jpa/aop/JpaEsQueryAop.java | 50 +------------------ 4 files changed, 36 insertions(+), 104 deletions(-) diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java index 9cd419e..0d8d76e 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/EsSqlQueryHelper.java @@ -7,11 +7,13 @@ import com.elasticsearch.engine.base.model.constant.CommonConstant; import com.elasticsearch.engine.base.model.domain.BackDto; import com.elasticsearch.engine.base.model.emenu.SqlParamParse; +import com.elasticsearch.engine.base.model.exception.EsEngineExecuteException; import com.elasticsearch.engine.base.model.exception.EsEngineJpaExecuteException; import lombok.extern.slf4j.Slf4j; import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.statement.select.Select; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Component; @@ -36,6 +38,9 @@ public class EsSqlQueryHelper { @Resource private EsSqlExecuteHandler esSqlExecuteHandler; + @Resource + private EsSqlQueryHelper esSqlQueryHelper; + /** * es aop 查询逻辑 * @@ -48,25 +53,40 @@ public Object esSqlQueryAopCommon(ProceedingJoinPoint pjp, BackDto backDto) thro MethodSignature signature = (MethodSignature) pjp.getSignature(); Method method = signature.getMethod(); Object[] args = pjp.getArgs(); + //不走es查询直接返回(全局开关) + if (!EsEngineConfig.isEsquery(method)) { + return pjp.proceed(args); + } + //获取回表查询参数 Object result = null; try { + //设置标记,在sql拦截器中抛出异常->回到后面的异常处理逻辑中实现es查询 ThreadLocalUtil.set(CommonConstant.IS_ES_QUERY, Boolean.TRUE); result = pjp.proceed(args); } catch (EsEngineJpaExecuteException e) { - if (Objects.nonNull(backDto)) { + String esSql = e.getMessage(); + //判断是否需要回表查询 + if (Objects.isNull(backDto)) { + //无需回表直接执行es查询 + //原生es执行 直接使用绑定参数后的sql + result = esSqlQueryHelper.esQuery(method, esSql, args, backDto); + } else { + //需要回表es查询并回表查询 //回表sql执行, sql重新时使用 原生未绑定参数的sql - List esResult = esQueryBack(method, e.getMessage(), args, backDto); - if(CollectionUtils.isEmpty(esResult)){ + String bakSql = ThreadLocalUtil.remove(CommonConstant.JPA_NATIVE_SQL); + if (StringUtils.isEmpty(bakSql)) { + throw new EsEngineExecuteException("回表sql异常"); + } + List esResult = esSqlQueryHelper.esQueryBack(method, esSql, bakSql, args, backDto); + if (CollectionUtils.isEmpty(esResult)) { return result; } result = pjp.proceed(args); - } else { - //原生es执行 直接使用绑定参数后的sql - result = esQuery(method, e.getMessage(), args, backDto); } } finally { ThreadLocalUtil.remove(CommonConstant.IS_ES_QUERY); ThreadLocalUtil.remove(CommonConstant.BACK_QUERY_SQL); + ThreadLocalUtil.remove(CommonConstant.JPA_NATIVE_SQL); } return result; } @@ -95,8 +115,8 @@ public Object esQuery(Method method, String sql, Object[] args, BackDto backDto) * @param backDto * @throws Exception */ - public List esQueryBack(Method method, String sql, Object[] args, BackDto backDto) throws Exception { - String paramSql = fillParamSql(method, sql, args, backDto); + public List esQueryBack(Method method, String esSql, String sql, Object[] args, BackDto backDto) throws Exception { + String paramSql = fillParamSql(method, esSql, args, backDto); //执行ES查询 List esResult = esSqlExecuteHandler.queryBySql(paramSql, backDto.getBackColumnTyp(), Boolean.TRUE); if (CollectionUtils.isEmpty(esResult)) { diff --git a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java index 65d0da8..521b2c9 100644 --- a/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java +++ b/elasticsearch-engine-base/src/main/java/com/elasticsearch/engine/base/common/parse/sql/SqlParserHelper.java @@ -12,6 +12,7 @@ import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.expression.*; import net.sf.jsqlparser.expression.operators.conditional.AndExpression; +import net.sf.jsqlparser.expression.operators.relational.Between; import net.sf.jsqlparser.expression.operators.relational.InExpression; import net.sf.jsqlparser.parser.CCJSqlParserManager; import net.sf.jsqlparser.parser.CCJSqlParserUtil; @@ -267,6 +268,11 @@ public static void setWhereItem(Expression where, Map tableAlias rightExpression = inExpression.getRightExpression() instanceof Parenthesis ? ((Parenthesis) inExpression.getRightExpression()).getExpression() : inExpression.getRightExpression(); leftExpression = inExpression.getLeftExpression() instanceof Parenthesis ? ((Parenthesis) inExpression.getLeftExpression()).getExpression() : inExpression.getLeftExpression(); } + + if (where instanceof Between) { + Between between = (Between) where; + leftExpression = between.getLeftExpression() instanceof Parenthesis ? ((Parenthesis) between.getLeftExpression()).getExpression() : between.getLeftExpression(); + } if (rightExpression instanceof Column) { Column rightColumn = (Column) rightExpression; reNameColumnName(rightColumn, tableAlias); diff --git a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/aop/JooqEsQueryAop.java b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/aop/JooqEsQueryAop.java index 980cf82..1a57c30 100644 --- a/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/aop/JooqEsQueryAop.java +++ b/elasticsearch-engine-jooq/src/main/java/com/elasticsearch/engine/jooq/aop/JooqEsQueryAop.java @@ -1,16 +1,8 @@ package com.elasticsearch.engine.jooq.aop; import com.elasticsearch.engine.base.common.parse.sql.EsSqlQueryHelper; -import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; -import com.elasticsearch.engine.base.config.EsEngineConfig; -import com.elasticsearch.engine.base.model.constant.CommonConstant; -import com.elasticsearch.engine.base.model.domain.BackDto; -import com.elasticsearch.engine.base.model.exception.EsEngineExecuteException; -import com.elasticsearch.engine.base.model.exception.EsEngineJpaExecuteException; import com.elasticsearch.engine.jooq.model.JooqBackDto; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -19,9 +11,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.lang.reflect.Method; -import java.util.List; -import java.util.Objects; /** @@ -47,42 +36,7 @@ public void esQueryCut() { @Around(value = "esQueryCut()") public Object retryAdvice(ProceedingJoinPoint pjp) throws Throwable { MethodSignature signature = (MethodSignature) pjp.getSignature(); - Method method = signature.getMethod(); - Object[] args = pjp.getArgs(); - //不走es查询直接返回(全局开关) - if(!EsEngineConfig.isEsquery(method)){ - return pjp.proceed(args); - } - //获取回表查询参数 - BackDto backDto = JooqBackDto.hasJooqBack(method); - Object result = null; - try { - //设置标记,在sql拦截器中抛出异常->回到后面的异常处理逻辑中实现es查询 - ThreadLocalUtil.set(CommonConstant.IS_ES_QUERY, Boolean.TRUE); - result = pjp.proceed(args); - } catch (EsEngineJpaExecuteException e) { - //判断是否需要回表查询 - if (Objects.isNull(backDto)) { - //无需回表直接执行es查询 - result = esSqlQueryHelper.esQuery(method, e.getMessage(), args, backDto); - } else { - //回表sql执行, sql重新时使用 原生未绑定参数的sql - String bakSql = ThreadLocalUtil.remove(CommonConstant.JPA_NATIVE_SQL); - if (StringUtils.isEmpty(bakSql)) { - throw new EsEngineExecuteException("jpa 回表sql异常"); - } - List esResult = esSqlQueryHelper.esQueryBack(method, bakSql, args, backDto); - if (CollectionUtils.isEmpty(esResult)) { - return result; - } - result = pjp.proceed(args); - } - } finally { - ThreadLocalUtil.remove(CommonConstant.IS_ES_QUERY); - ThreadLocalUtil.remove(CommonConstant.BACK_QUERY_SQL); - ThreadLocalUtil.remove(CommonConstant.JPA_NATIVE_SQL); - } - return result; + return esSqlQueryHelper.esSqlQueryAopCommon(pjp, JooqBackDto.hasJooqBack(signature.getMethod())); } } diff --git a/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/aop/JpaEsQueryAop.java b/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/aop/JpaEsQueryAop.java index 2202a20..554b664 100644 --- a/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/aop/JpaEsQueryAop.java +++ b/elasticsearch-engine-jpa/src/main/java/com/elasticsearch/engine/jpa/aop/JpaEsQueryAop.java @@ -1,16 +1,8 @@ package com.elasticsearch.engine.jpa.aop; import com.elasticsearch.engine.base.common.parse.sql.EsSqlQueryHelper; -import com.elasticsearch.engine.base.common.utils.ThreadLocalUtil; -import com.elasticsearch.engine.base.config.EsEngineConfig; -import com.elasticsearch.engine.base.model.constant.CommonConstant; -import com.elasticsearch.engine.base.model.domain.BackDto; -import com.elasticsearch.engine.base.model.exception.EsEngineExecuteException; -import com.elasticsearch.engine.base.model.exception.EsEngineJpaExecuteException; import com.elasticsearch.engine.jpa.model.JpaBackDto; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -19,9 +11,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.lang.reflect.Method; -import java.util.List; -import java.util.Objects; /** @@ -47,43 +36,6 @@ public void esQueryCut() { @Around(value = "esQueryCut()") public Object retryAdvice(ProceedingJoinPoint pjp) throws Throwable { MethodSignature signature = (MethodSignature) pjp.getSignature(); - Method method = signature.getMethod(); - Object[] args = pjp.getArgs(); - //不走es查询直接返回(全局开关) - if(!EsEngineConfig.isEsquery(method)){ - return pjp.proceed(args); - } - //获取回表查询参数 - BackDto backDto = JpaBackDto.hasJpaBack(method); - Object result = null; - try { - //设置标记,在sql拦截器中抛出异常->回到后面的异常处理逻辑中实现es查询 - ThreadLocalUtil.set(CommonConstant.IS_ES_QUERY, Boolean.TRUE); - result = pjp.proceed(args); - } catch (EsEngineJpaExecuteException e) { - //判断是否需要回表查询 - if (Objects.isNull(backDto)) { - //无需回表直接执行es查询 - //原生es执行 直接使用绑定参数后的sql - result = esSqlQueryHelper.esQuery(method, e.getMessage(), args, backDto); - } else { - //需要回表es查询并回表查询 - //回表sql执行, sql重新时使用 原生未绑定参数的sql - String bakSql = ThreadLocalUtil.remove(CommonConstant.JPA_NATIVE_SQL); - if (StringUtils.isEmpty(bakSql)) { - throw new EsEngineExecuteException("jpa 回表sql异常"); - } - List esResult = esSqlQueryHelper.esQueryBack(method, bakSql, args, backDto); - if (CollectionUtils.isEmpty(esResult)) { - return result; - } - result = pjp.proceed(args); - } - } finally { - ThreadLocalUtil.remove(CommonConstant.IS_ES_QUERY); - ThreadLocalUtil.remove(CommonConstant.BACK_QUERY_SQL); - ThreadLocalUtil.remove(CommonConstant.JPA_NATIVE_SQL); - } - return result; + return esSqlQueryHelper.esSqlQueryAopCommon(pjp, JpaBackDto.hasJpaBack(signature.getMethod())); } } From e8f342edf747d94d918f25e14f3403a24f23e80f Mon Sep 17 00:00:00 2001 From: wanghaun Date: Thu, 28 Jul 2022 18:10:34 +0800 Subject: [PATCH 10/10] =?UTF-8?q?feature/20220629=5Ffix=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ img.png | Bin 0 -> 296332 bytes 2 files changed, 2 insertions(+) create mode 100644 img.png diff --git a/README.md b/README.md index e8d3d76..7b42790 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # elasticsearch-engine ## 介绍 +![img.png](img.png) elasticsearch-engine是基于 HighLevelRestClient 封装的 ElasticSearch 查询引擎框架. 支持ElasticSearch基于注解的结构化查询; 基于sql语句的方式查询; @@ -32,6 +33,7 @@ github地址: https://github.com/wanghuan9/elasticsearch-engine 4. elasticsearch-engine-jooq 基于aop,jooq执行监听器 实现sql拦截,改写,执行elasticsearch查询 ## 使用说明 + 所有完整示例 请参考 [使用示例](https://gitee.com/my-source-project/elasticsearch-engine-demo) ### 1.注解查询 diff --git a/img.png b/img.png new file mode 100644 index 0000000000000000000000000000000000000000..55aeaf842c9e689b13b1999fb45558760bcf3acb GIT binary patch literal 296332 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ⅆ)+n~}}e#r`2y><;9Jk(7OJoKQyKgi}+ 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%0DXQKM_jUge(adTZwvMmyc^(eR9kd_&rHJ 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 BkNf}t literal 0 HcmV?d00001