diff --git a/sql-analysis/src/main/java/com/jd/sql/analysis/extract/SqlExtract.java b/sql-analysis/src/main/java/com/jd/sql/analysis/extract/SqlExtract.java index 6924115..04a909a 100644 --- a/sql-analysis/src/main/java/com/jd/sql/analysis/extract/SqlExtract.java +++ b/sql-analysis/src/main/java/com/jd/sql/analysis/extract/SqlExtract.java @@ -51,6 +51,12 @@ public static SqlExtractResult extract(StatementHandler statementHandler){ //MetaObjectUtil 通过mybatis 反射工具类,从入参提取相关对象 //提取 PreparedStatementHandler ,用于提取 MappedStatement MetaObject delegateMetaObject = MetaObjectUtil.forObject(statementHandler); + + boolean hasGetter = delegateMetaObject.hasGetter("h"); + if (hasGetter) { + delegateMetaObject = MetaObjectUtil.forObject(delegateMetaObject.getValue("h")); + delegateMetaObject = MetaObjectUtil.forObject(delegateMetaObject.getValue("target")); + } if(delegateMetaObject.getValue("delegate")==null){ logger.warn("sql analysis get delegate null error,{}", GsonUtil.bean2Json(statementHandler.getBoundSql())); return null;