All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jeesuite.mybatis.crud.builder.AbstractSelectMethodBuilder Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
package com.jeesuite.mybatis.crud.builder;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.ResultFlag;
import org.apache.ibatis.mapping.ResultMap;
import org.apache.ibatis.mapping.ResultMapping;
import org.apache.ibatis.mapping.SqlCommandType;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.SystemMetaObject;
import org.apache.ibatis.session.Configuration;

import com.jeesuite.mybatis.crud.helper.ColumnMapper;
import com.jeesuite.mybatis.crud.helper.EntityHelper;

/**
 * 
 * 
* Class Name : AbstractSelectMethodBuilder * * @author jiangwei * @version 1.0.0 * @date 2020年5月9日 */ public abstract class AbstractSelectMethodBuilder extends AbstractMethodBuilder { @Override SqlCommandType sqlCommandType() { return SqlCommandType.SELECT; } @Override void setResultType(Configuration configuration, MappedStatement ms, Class entityClass) { List resultMaps = new ArrayList(); resultMaps.add(getResultMap(configuration,entityClass)); MetaObject metaObject = SystemMetaObject.forObject(ms); metaObject.setValue("resultMaps", Collections.unmodifiableList(resultMaps)); } /** * 生成当前实体的resultMap对象 * * @param configuration * @return */ public static ResultMap getResultMap(Configuration configuration,Class entityClass) { List resultMappings = new ArrayList(); Set entityClassColumns = EntityHelper.getEntityMapper(entityClass).getColumnsMapper(); for (ColumnMapper entityColumn : entityClassColumns) { ResultMapping.Builder builder = new ResultMapping.Builder(configuration, entityColumn.getProperty(), entityColumn.getColumn(), entityColumn.getJavaType()); if (entityColumn.getJdbcType() != null) { builder.jdbcType(entityColumn.getJdbcType()); } List flags = new ArrayList(); if (entityColumn.isId()) { flags.add(ResultFlag.ID); } builder.flags(flags); builder.lazy(false); resultMappings.add(builder.build()); } ResultMap.Builder builder = new ResultMap.Builder(configuration, "BaseResultMap", entityClass, resultMappings, true); return builder.build(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy