code: public Type getPropertyType(String property) {
      Type type = (Type) propertyTypes.get(property);
      if (null == type) {
        Class<?> propertyType = PropertyUtils.getPropertyType(entityClass, property);
        if (null != propertyType) {
          if (Entity.class.isAssignableFrom(propertyType)) type = new EntityType(propertyType);
          if (propertyType.isInterface()) type = Model.getType(propertyType.getName());
          if (null == type) type = new IdentifierType(propertyType);
        }
      }
      if (null == type) logger.error("{} doesn't contains property {}", entityName, property);
      return type;
    }
docs: Get the type of a particular (named) property