/**
  * Convert a field instance into A ColumnModel instance. ColumnModel can provide information when
  * creating table.
  *
  * @param field A supported field to map into column.
  * @return ColumnModel instance contains column information.
  */
 private ColumnModel convertFieldToColumnModel(Field field) {
   String columnType = null;
   String fieldType = field.getType().getName();
   for (OrmChange ormChange : typeChangeRules) {
     columnType = ormChange.object2Relation(fieldType);
     if (columnType != null) {
       break;
     }
   }
   boolean nullable = true;
   boolean unique = false;
   String defaultValue = "";
   Column annotation = field.getAnnotation(Column.class);
   if (annotation != null) {
     nullable = annotation.nullable();
     unique = annotation.unique();
     defaultValue = annotation.defaultValue();
   }
   ColumnModel columnModel = new ColumnModel();
   columnModel.setColumnName(field.getName());
   columnModel.setColumnType(columnType);
   columnModel.setIsNullable(nullable);
   columnModel.setIsUnique(unique);
   columnModel.setDefaultValue(defaultValue);
   return columnModel;
 }