code: protected String toField(Path<?> path) {
          PathMetadata md = path.getMetadata();
          if (md.getPathType() == PathType.COLLECTION_ANY) {
              return toField(md.getParent());
          } else {
              String rv = md.getName();
              if (md.getParent() != null) {
                  Path<?> parent = md.getParent();
                  if (parent.getMetadata().getPathType() != PathType.VARIABLE) {
                      rv = toField(parent) + "." + rv;
                  }
              }
              return rv;
          }
      }
docs: template method, override to customize
  
  @param path
  path
  @return field name