Example usage for org.apache.ibatis.mapping ResultMap hasNestedQueries

List of usage examples for org.apache.ibatis.mapping ResultMap hasNestedQueries

Introduction

In this page you can find the example usage for org.apache.ibatis.mapping ResultMap hasNestedQueries.

Prototype

boolean hasNestedQueries

To view the source code for org.apache.ibatis.mapping ResultMap hasNestedQueries.

Click Source Link

Usage

From source file:com.github.abel533.mapper.MapperHelper.java

License:Open Source License

/**
 * ?Key?//from   w w  w.  j  ava  2  s.c o  m
 *
 * @param result
 * @param ms
 */
public void cameHumpMap(Object result, MappedStatement ms) {
    ResultMap resultMap = ms.getResultMaps().get(0);
    Class<?> type = resultMap.getType();
    //?typeMap,???resultMap,???
    if (result instanceof List && ((List) result).size() > 0 && Map.class.isAssignableFrom(type)
            && !resultMap.hasNestedQueries() && !resultMap.hasNestedResultMaps()) {
        List resultList = (List) result;
        //1.resultType
        if (resultMap.getId().endsWith("-Inline")) {
            for (Object re : resultList) {
                processMap((Map) re);
            }
        } else {//2.resultMap
            for (Object re : resultList) {
                processMap((Map) re, resultMap.getResultMappings());
            }
        }
    }
}

From source file:com.yunmel.syncretic.core.CameHumpInterceptor.java

License:Apache License

public Object intercept(Invocation invocation) throws Throwable {
    // ??/*  w w  w.jav  a  2s  . c  o  m*/
    Object result = invocation.proceed();
    MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0];
    ResultMap resultMap = mappedStatement.getResultMaps().get(0);
    Class<?> type = resultMap.getType();
    // ?typeMap,???resultMap,???
    if (((List) result).size() > 0 && Map.class.isAssignableFrom(type) && !resultMap.hasNestedQueries()
            && !resultMap.hasNestedResultMaps()) {
        List resultList = (List) result;
        // 1.resultType
        if (resultMap.getId().endsWith(RESULT_TYPE)) {
            for (Object re : resultList) {
                if (re == null)
                    continue;
                processMap((Map) re);
            }
        } else {// 2.resultMap
            for (Object re : resultList) {
                processMap((Map) re, resultMap.getResultMappings());
            }
        }
    }
    return result;
}