List of usage examples for org.apache.ibatis.mapping ResultMap getType
public Class<?> getType()
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; }