MyBatis Interceptor 中如何获得resultType

[code="java"]

@Intercepts( {@Signature(method = "handleResultSets", type = ResultSetHandler.class, args = {Statement.class}) })

public class ResultSetHandlerInterceptor implements Interceptor {
private Logger logger = Logger.getLogger(ResultSetHandlerInterceptor.class);

@Override
public Object intercept(Invocation invocation) throws Throwable {
 [color=red]//想在这里获得resultType,如果resultType="map"时进行相关处理[/color]

}
//.....
}
[/code]

oma1989
「已注销」 已找着解决方法: ResultSetHandler resultSetHandler = (ResultSetHandler) invocation.getTarget(); //通过java反射获得mappedStatement属性值 MappedStatement ms = (MappedStatement)ReflectUtil.getFieldValue(resultSetHandler, "mappedStatement"); List<ResultMap> rms = ms.getResultMaps(); ResultMap rm = rms != null && rms.size() > 0 ? rms.get(0) : null; String type = rm != null && rm.getType() != null ? rm.getType().getName() :
接近 6 年之前 回复

1个回答

[code="java"]
MappedStatement statement = (MappedStatement) invocation.getArgs()[0];
statement.getResultSetType();
[/code]

oma1989
「已注销」 已找着解决方法: ResultSetHandler resultSetHandler = (ResultSetHandler) invocation.getTarget(); //通过java反射获得mappedStatement属性值 MappedStatement ms = (MappedStatement)ReflectUtil.getFieldValue(resultSetHandler, "mappedStatement"); List<ResultMap> rms = ms.getResultMaps(); ResultMap rm = rms != null && rms.size() > 0 ? rms.get(0) : null; String type = rm != null && rm.getType() != null ? rm.getType().getName() : "";
接近 6 年之前 回复
oma1989
「已注销」 我想获得的是mybatis xml 中sqlstatement的resultType
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐