code: @SuppressWarnings("unchcecked")
      public static <T extends EntityPath> T path(EntityPath<?> parent, T path) {
          if (parent != null) {
              return ReflectionUtils.instantiate(path.getClass(), path.toString() + "_on_" + parent.toString());
          }
          return path;
      }
docs: Aliases of nested joins are determined at runtime. To refer a nested join, this method should be used to get a correct alias.
  For example, there is a query
  <p>
  <code>Q.from(QGroup.group).joins(J.left(QPerson.person).nested(J.left(QContact.contact)))</code>
  </p>
  To refer a <code>Contact</code> entity in the 'where' clause, one should use <code>J.path(QPerson.person, QContact.contact).number.eq(12345)</code>
  
  @param parent parent join path
  @param path   target join path
  @param <T>    any entity path
  @return entity path with correct alias