Esempio n. 1
0
  /**
   * 获取物理数据表列表
   *
   * @param genTable
   * @return
   */
  public GenTable getTableFormDb(GenTable genTable) {
    // 如果有表名,则获取物理表
    if (StringUtils.isNotBlank(genTable.getName())) {

      List<GenTable> list = genDataBaseDictDao.findTableList(genTable);
      if (list.size() > 0) {

        // 如果是新增,初始化表属性
        if (StringUtils.isBlank(genTable.getId())) {
          genTable = list.get(0);
          // 设置字段说明
          if (StringUtils.isBlank(genTable.getComments())) {
            genTable.setComments(genTable.getName());
          }
          genTable.setClassName(StringUtils.toCapitalizeCamelCase(genTable.getName()));
        }

        // 添加新列
        List<GenTableColumn> columnList = genDataBaseDictDao.findTableColumnList(genTable);
        for (GenTableColumn column : columnList) {
          boolean b = false;
          for (GenTableColumn e : genTable.getColumnList()) {
            if (e.getName().equals(column.getName())) {
              b = true;
            }
          }
          if (!b) {
            genTable.getColumnList().add(column);
          }
        }

        // 删除已删除的列
        for (GenTableColumn e : genTable.getColumnList()) {
          boolean b = false;
          for (GenTableColumn column : columnList) {
            if (column.getName().equals(e.getName())) {
              b = true;
            }
          }
          if (!b) {
            e.setDelFlag(GenTableColumn.DEL_FLAG_DELETE);
          }
        }

        // 获取主键
        genTable.setPkList(genDataBaseDictDao.findTablePK(genTable));

        // 初始化列属性字段
        GenUtils.initColumnField(genTable);
      }
    }
    return genTable;
  }