code: public static Field getPropertyField(Class<?> clazz, String propertyPath) {
  		
  		Field propertyField = null;
  		try {
  			String[] properties = propertyPath.split("\\.");
  			Field carField = getDeclaredFieldInHierarchy(clazz, properties[0]); 
  			if (properties.length == 1) {
  				propertyField = carField;
  			} else {
  				String cdr = StringUtils.arrayToDelimitedString(
  						Arrays.copyOfRange(properties, 1, properties.length), ".");
  				propertyField = getPropertyField(carField.getType(), cdr);
  			}
  		} catch (Exception e) {
  			throw new IllegalArgumentException("Error accessing propertyPath: " + propertyPath + 
  					" on class: " + clazz.getName(), e);
  		}
  		return propertyField;
  	}
docs: Retrieve the {@link Field} corresponding to the propertyPath in the given
  class.
  
  @param clazz
  @param propertyPath
  @return