code: public void setupEntityField(Connection conn, Entity<?> en) {
          List<MappingField> mfs = new ArrayList<MappingField>();
          for (MappingField mf : en.getMappingFields()) {
              if (mf.getTypeMirror().isEnum()) {
                  mfs.add(mf);
              }
          }
          if (mfs.isEmpty())
              return;
          Statement stat = null;
          ResultSet rs = null;
          ResultSetMetaData rsmd = null;
          try {
              // 获取数据库元信息
              stat = conn.createStatement();
              rs = stat.executeQuery(createResultSetMetaSql(en));
              rsmd = rs.getMetaData();
              // 循环字段检查
              List<String> columnNames = new ArrayList<String>();
              List<String> columnLabels = new ArrayList<String>();
              int columnCount = rsmd.getColumnCount();
              for (int i = 1; i <= columnCount; i++) {
                  columnNames.add(rsmd.getColumnName(i));
                  columnLabels.add(rsmd.getColumnLabel(i));
              }
              for (MappingField mf : mfs) {
                  try {
                      int ci = columnNames.indexOf(mf.getColumnName()) + 1;
                      if (ci == 0) {
                          log.debugf("Can not find @Column(%s) in table/view (%s), skip checking", mf.getColumnName(), rsmd.getTableName(1));
                          continue;
                      }
                      // 枚举类型在数据库中的值
                      if (Daos.isIntLikeColumn(rsmd, ci)) {
                          mf.setColumnType(ColType.INT);
                      } else {
                          mf.setColumnType(ColType.VARCHAR);
                      }
                  }
                  catch (Exception e) {
                  }
              }
          }
          catch (Exception e) {
              if (log.isDebugEnabled())
                  log.debugf("Table '%s' doesn't exist! class=%s", en.getViewName(), en.getType().getName());
          }
          // Close ResultSet and Statement
          finally {
              Daos.safeClose(stat, rs);
          }
      }
docs: 下面为子类默认实现几个接口函数