package org.hsweb.web.mybatis.builder; import org.hsweb.ezorm.core.param.InsertParam; import org.hsweb.ezorm.rdb.executor.SQL; import org.hsweb.ezorm.rdb.meta.RDBColumnMetaData; import org.hsweb.ezorm.rdb.meta.RDBTableMetaData; import org.hsweb.ezorm.rdb.render.SqlAppender; import org.hsweb.ezorm.rdb.render.support.simple.SimpleInsertSqlRender; /** * @author zhouhao */ public class InsertSqlBuilder extends SimpleInsertSqlRender { @Override public SQL render(RDBTableMetaData metaData, InsertParam param) { RDBTableMetaData metaDataNew = metaData.clone(); metaDataNew.setDatabaseMetaData(metaData.getDatabaseMetaData()); metaDataNew.getColumns().stream() .filter(column -> column.getName().contains(".")) .map(RDBColumnMetaData::getName) .forEach(metaDataNew::removeColumn); return super.render(metaDataNew, param); } @Override protected SqlAppender getParamString(String prefix, String paramName, RDBColumnMetaData rdbColumnMetaData) { return new SqlAppender().add("#{", prefix, paramName, ",javaType=", EasyOrmSqlBuilder.getJavaType(rdbColumnMetaData.getJavaType()), ",jdbcType=", rdbColumnMetaData.getJdbcType(), "}"); } }