code: private static DatabaseFieldConfig configFromField(DatabaseType databaseType, String tableName, Field field)
  			throws SQLException {
  
  		if (configFieldNums == null) {
  			return DatabaseFieldConfig.fromField(databaseType, tableName, field);
  		}
  
  		/*
  		 * This, unfortunately, we can't get around. This creates a AnnotationFactory, an array of AnnotationMember
  		 * fields, and possibly another array of AnnotationMember values. This creates a lot of GC'd objects.
  		 */
  		DatabaseField databaseField = field.getAnnotation(DatabaseField.class);
  
  		DatabaseFieldConfig config = null;
  		try {
  			if (databaseField != null) {
  				config = buildConfig(databaseField, tableName, field);
  			}
  		} catch (Exception e) {
  			// ignored so we will configure normally below
  		}
  
  		if (config == null) {
  			/*
  			 * We configure this the old way because we might be using javax annotations, have a ForeignCollectionField,
  			 * or may still be using the deprecated annotations. At this point we know that there isn't a @DatabaseField
  			 * or we can't do our reflection hacks for some reason.
  			 */
  			return DatabaseFieldConfig.fromField(databaseType, tableName, field);
  		} else {
  			workedC++;
  			return config;
  		}
  	}
docs: Extract our configuration information from the field by looking for a {@link DatabaseField} annotation.