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

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

Introduction

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

Prototype

public Class<?> getType() 

Source Link

Usage

From source file:com.create.mybatis.repository.support.MyBatisMapperProvider.java

License:Apache License

public <T> T getMapper(final Class<T> domainClass) {
    T mapper = null;//from w  w w  . j  a  va2 s . c  o m
    for (final ResultMap resultMap : sqlSessionTemplate.getConfiguration().getResultMaps()) {
        if (resultMap.getType().equals(domainClass)) {
            mapper = getMapperForResultMapId(resultMap.getId());
            if (mapper != null)
                break;
        }
    }
    return mapper;
}

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

License:Open Source License

/**
 * ?Key?/*from   w w w.  j a va  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.sxj.mybatis.orm.builder.GenericStatementBuilder.java

License:Open Source License

private void buildMultiGet(String statementId, String collection) {
    Integer fetchSize = null;/*from   w w w  .j  ava  2 s . com*/
    Integer timeout = null;
    Class<?> resultType = entityClass;
    //~~~~~~~~~~~~~~~~~~~~~~~
    boolean flushCache = true;
    boolean useCache = false;
    boolean resultOrdered = false;
    KeyGenerator keyGenerator = new NoKeyGenerator();

    SqlSource sqlSource = new DynamicSqlSource(configuration, getMultiGetSql(collection));

    String resultMap = null;
    Iterator<String> resultMapNames = configuration.getResultMapNames().iterator();
    while (resultMapNames.hasNext()) {
        String name = resultMapNames.next();
        ResultMap temp = configuration.getResultMap(name);
        if (temp.getType().equals(entityClass)) {
            resultMap = temp.getId();
            break;
        }
    }
    assistant.addMappedStatement(statementId, sqlSource, StatementType.PREPARED, SqlCommandType.SELECT,
            fetchSize, timeout, null, idField.getType(), resultMap, resultType, null, flushCache, useCache,
            resultOrdered, keyGenerator, null, null, databaseId, lang);
}

From source file:com.sxj.mybatis.orm.builder.GenericStatementBuilder.java

License:Open Source License

private void buildSelect(String statementId) {
    Integer fetchSize = null;/*from w  w  w  .  j a  va 2 s.c om*/
    Integer timeout = entity.timeout() == -1 ? null : entity.timeout();
    Class<?> resultType = entityClass;

    //~~~~~~~~~~~~~~~~~
    boolean flushCache = entity.flushCache();
    boolean useCache = entity.useCache();
    boolean resultOrdered = false;
    KeyGenerator keyGenerator = new NoKeyGenerator();

    List<SqlNode> contents = new ArrayList<SqlNode>();
    contents.add(this.getGetSql());

    SqlSource sqlSource = new DynamicSqlSource(configuration, new MixedSqlNode(contents));
    String resultMap = null;
    Iterator<String> resultMapNames = configuration.getResultMapNames().iterator();
    while (resultMapNames.hasNext()) {
        String name = resultMapNames.next();
        ResultMap temp = configuration.getResultMap(name);
        if (temp.getType().equals(entityClass)) {
            resultMap = temp.getId();
            break;
        }
    }
    assistant.addMappedStatement(statementId, sqlSource, StatementType.PREPARED, SqlCommandType.SELECT,
            fetchSize, timeout, null, idField.getType(), resultMap, resultType, null, flushCache, useCache,
            resultOrdered, keyGenerator, null, null, databaseId, lang);
}

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

License:Apache License

public Object intercept(Invocation invocation) throws Throwable {
    // ??//w ww.  j av  a2s  .  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;
}

From source file:das.orm.ORMBackendConnector.java

License:Apache License

private boolean isCompatibleMap(ResultMap rm, Class<?> beanClass) {
    // ?, ??   ResultMap ??   beanClass
    if ((rm != null) && (beanClass != null)) {
        return (beanClass == rm.getType());
    } else/*from www.ja  v  a2  s  . c o  m*/
        return false;
}

From source file:das.orm.ORMBackendConnector.java

License:Apache License

public List<BeanPropertyMapping> getBeanPropertiesMapping(Class<?> beanClass) {
    log.trace(">>> getBeanPropertiesMapping()");
    List<BeanPropertyMapping> DAOprops = new ArrayList<BeanPropertyMapping>();
    Configuration conf = getConfiguration();
    if (conf != null) {
        ///*from w ww  .j a v  a2  s.c o m*/
        //checkDAOMapperClass(mapperClass, dao);
        Collection<ResultMap> rmc = conf.getResultMaps();
        //log.debug("ResultMaps size="+rmc.size());
        Iterator<ResultMap> rmci = rmc.iterator();
        while (rmci.hasNext()) {
            ResultMap rm = rmci.next();
            // ID=com.example.server.dao.UserMapper.UserMap, Type=com.example.server.dao.UserDTO
            log.debug("ResultMap ID=" + rm.getId() + ", Type=" + rm.getType().getName());
            // ?, ??   ResultMap ??   beanClass
            if (isCompatibleMap(rm, beanClass)) {
                List<ResultMapping> r = rm.getResultMappings();
                Iterator<ResultMapping> i2 = r.iterator();
                while (i2.hasNext()) {
                    ResultMapping r2 = i2.next();
                    // ? ?? (?)  . 
                    //  ?  ?? ? ? ??   
                    DAOprops.add(new BeanPropertyMapping(r2.getProperty(), r2.getColumn(), r2.getJavaType(),
                            r2.getFlags(), r2.getNotNullColumns()));
                    StringBuilder s = new StringBuilder();
                    s.append("Column=").append(r2.getColumn());
                    s.append(", Property=").append(r2.getProperty());
                    s.append(", JavaType=").append(r2.getJavaType());
                    s.append(", Flags=[");
                    List<ResultFlag> flags = r2.getFlags();
                    for (ResultFlag rf : flags) {
                        s.append(rf.name()).append(", ");
                    }
                    s.append("]");
                    s.append(", NotNullColumns=[");
                    Set<String> nncs = r2.getNotNullColumns();
                    for (String nnc : nncs) {
                        s.append(nnc).append(", ");
                    }
                    s.append("]");
                    log.debug(s.toString());
                }
                break; //    ?? , ? 
            }
        }
    }
    return DAOprops;
}

From source file:fxapp01.orm.ORMBackendConnector.java

License:Apache License

private boolean isCompatibleMap(ResultMap rm, Class beanClass) {
    // ?, ??   ResultMap ??   beanClass
    if ((rm != null) && (beanClass != null)) {
        return (beanClass == rm.getType());
    } else/* w  ww . ja v a  2 s .  c o  m*/
        return false;
}

From source file:fxapp01.orm.ORMBackendConnector.java

License:Apache License

public List<BeanPropertyMapping> getBeanPropertiesMapping(Class beanClass) {
    log.trace(">>> getDAOProperties()");
    List<BeanPropertyMapping> DAOprops = new ArrayList<>();
    Configuration conf = getConfiguration();
    if (conf != null) {
        ///*from  www. j  ava2 s  .  com*/
        //checkDAOMapperClass(mapperClass, dao);
        Collection<ResultMap> rmc = conf.getResultMaps();
        //log.debug("ResultMaps size="+rmc.size());
        Iterator<ResultMap> rmci = rmc.iterator();
        while (rmci.hasNext()) {
            ResultMap rm = rmci.next();
            // ID=com.example.server.dao.UserMapper.UserMap, Type=com.example.server.dao.UserDTO
            log.debug("ResultMap ID=" + rm.getId() + ", Type=" + rm.getType().getName());
            // ?, ??   ResultMap ??   beanClass
            if (isCompatibleMap(rm, beanClass)) {
                List<ResultMapping> r = rm.getResultMappings();
                Iterator<ResultMapping> i2 = r.iterator();
                while (i2.hasNext()) {
                    ResultMapping r2 = i2.next();
                    // ? ?? (?)  . 
                    //  ?  ?? ? ? ??   
                    DAOprops.add(new BeanPropertyMapping(r2.getProperty(), r2.getColumn(), r2.getJavaType()));
                    log.debug("Column=" + r2.getColumn() + ", Property=" + r2.getProperty() + ", JavaType="
                            + r2.getJavaType());
                }
                break; //    ?? , ? 
            }
        }
    }
    return DAOprops;
}

From source file:org.hswebframework.web.dao.mybatis.builder.EasyOrmSqlBuilder.java

License:Apache License

protected RDBTableMetaData createMeta(String tableName, String resultMapId) {
    RDBDatabaseMetaData active = getActiveDatabase();
    String cacheKey = tableName.concat("-").concat(resultMapId);
    Map<String, RDBTableMetaData> cache = metaCache.get(active);
    RDBTableMetaData cached = cache.get(cacheKey);
    if (cached != null) {
        return cached;
    }/*from  w w w .ja v  a  2s.  c  o  m*/
    RDBTableMetaData rdbTableMetaData = new RDBTableMetaData();
    ResultMap resultMaps = MybatisUtils.getResultMap(resultMapId);
    rdbTableMetaData.setName(tableName);
    rdbTableMetaData.setDatabaseMetaData(active);

    List<ResultMapping> resultMappings = new ArrayList<>(resultMaps.getResultMappings());
    resultMappings.addAll(resultMaps.getIdResultMappings());
    resultMappings.forEach(resultMapping -> {
        if (resultMapping.getNestedQueryId() == null) {
            RDBColumnMetaData column = new RDBColumnMetaData();
            column.setJdbcType(JDBCType.valueOf(resultMapping.getJdbcType().name()));
            column.setName(resultMapping.getColumn());
            if (!StringUtils.isNullOrEmpty(resultMapping.getProperty())) {
                column.setAlias(resultMapping.getProperty());
            }
            column.setJavaType(resultMapping.getJavaType());
            column.setProperty("resultMapping", resultMapping);
            ValueConverter dateConvert = new DateTimeConverter("yyyy-MM-dd HH:mm:ss", column.getJavaType()) {
                @Override
                public Object getData(Object value) {
                    if (value instanceof Number) {
                        return new Date(((Number) value).longValue());
                    }
                    return super.getData(value);
                }
            };
            if (column.getJdbcType() == JDBCType.DATE) {
                column.setValueConverter(dateConvert);
            } else if (column.getJdbcType() == JDBCType.TIMESTAMP) {
                column.setValueConverter(dateConvert);
            } else if (column.getJdbcType() == JDBCType.NUMERIC) {
                column.setValueConverter(new NumberValueConverter(column.getJavaType()));
            }
            rdbTableMetaData.addColumn(column);
        }
    });
    cache.put(cacheKey, rdbTableMetaData);
    if (useJpa) {
        Class type = entityFactory == null ? resultMaps.getType()
                : entityFactory.getInstanceType(resultMaps.getType());
        RDBTableMetaData parseResult = JpaAnnotationParser.parseMetaDataFromEntity(type);
        if (parseResult != null) {
            for (RDBColumnMetaData columnMetaData : parseResult.getColumns()) {
                if (rdbTableMetaData.findColumn(columnMetaData.getName()) == null) {
                    columnMetaData = columnMetaData.clone();
                    columnMetaData.setProperty("fromJpa", true);
                    rdbTableMetaData.addColumn(columnMetaData);
                }
            }
        }
    }
    return rdbTableMetaData;
}