2 twony Twony 于 2014.12.15 13:46 提问

MyBatis Interceptor 中如何获的resultType

@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 {
            **想在这里获取resultType,如果resultType=“map”时进行相关处理,但是如何获得resultType呢?**
}
.....
}

2个回答

Twony
Twony   2014.12.17 10:15
已采纳
已找着解决方法:

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() : 
devmiao
devmiao   Ds   Rxr 2014.12.15 14:29
Twony
Twony 亲,你看错了。。。。。。这个Interceptor 是mybatis的,不是struts的。
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!