/** * Copyright (c) 2011-2014, hubin (jobob@qq.com). * <p> * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.baomidou.mybatisplus.entity; import java.util.List; import org.apache.ibatis.session.Configuration; import com.baomidou.mybatisplus.annotations.KeySequence; import com.baomidou.mybatisplus.enums.IdType; import com.baomidou.mybatisplus.exceptions.MybatisPlusException; /** * <p> * 数据库表反射信息 * </p> * * @author hubin * @Date 2016-01-23 */ public class TableInfo { /** * 表主键ID 类型 */ private IdType idType = IdType.NONE; /** * 表名称 */ private String tableName; /** * 表映射结果集 */ private String resultMap; /** * <p> * 主键是否有存在字段名与属性名关联 * </p> * true , false */ private boolean keyRelated = false; /** * 表主键ID 属性名 */ private String keyProperty; /** * 表主键ID 字段名 */ private String keyColumn; /** * <p> * 表主键ID Sequence * </p> */ private KeySequence keySequence; /** * 表字段信息列表 */ private List<TableFieldInfo> fieldList; /** * 命名空间 */ private String currentNamespace; /** * MybatisConfiguration 标记 (Configuration内存地址值) */ private String configMark; /** * 是否开启逻辑删除 */ private boolean logicDelete = false; /** * <p> * 获得注入的 SQL Statement * </p> * * @param sqlMethod * MybatisPlus 支持 SQL 方法 * @return */ public String getSqlStatement(String sqlMethod) { StringBuilder statement = new StringBuilder(); statement.append(currentNamespace); statement.append("."); statement.append(sqlMethod); return statement.toString(); } public IdType getIdType() { return idType; } public void setIdType(IdType idType) { this.idType = idType; } public String getTableName() { return tableName; } public void setTableName(String tableName) { this.tableName = tableName; } public String getResultMap() { return resultMap; } public void setResultMap(String resultMap) { this.resultMap = resultMap; } public boolean isKeyRelated() { return keyRelated; } public void setKeyRelated(boolean keyRelated) { this.keyRelated = keyRelated; } public String getKeyProperty() { return keyProperty; } public void setKeyProperty(String keyProperty) { this.keyProperty = keyProperty; } public String getKeyColumn() { return keyColumn; } public void setKeyColumn(String keyColumn) { this.keyColumn = keyColumn; } public KeySequence getKeySequence() { return keySequence; } public void setKeySequence(KeySequence keySequence) { this.keySequence = keySequence; } public List<TableFieldInfo> getFieldList() { return fieldList; } public void setFieldList(GlobalConfiguration globalConfig, List<TableFieldInfo> fieldList) { this.fieldList = fieldList; /* * 启动逻辑删除注入、判断该表是否启动 */ if (null != globalConfig.getLogicDeleteValue()) { for (TableFieldInfo tfi: fieldList) { if (tfi.isLogicDelete()) { this.setLogicDelete(true); break; } } } } public String getCurrentNamespace() { return currentNamespace; } public void setCurrentNamespace(String currentNamespace) { this.currentNamespace = currentNamespace; } public String getConfigMark() { return configMark; } public void setConfigMark(Configuration configuration) { if (configuration == null) { throw new MybatisPlusException("Error: You need Initialize MybatisConfiguration !"); } this.configMark = configuration.toString(); } public boolean isLogicDelete() { return logicDelete; } public void setLogicDelete(boolean logicDelete) { if (logicDelete) { // 非 true 不设置,默认 false this.logicDelete = logicDelete; } } }