code: @SuppressWarnings("unchcecked")
      public static <T extends EntityPath> T path(EntityPath<?> grandFather, EntityPath<?> father, T path) {
          Assert.notNull(father);
          Assert.notNull(grandFather);
  
          EntityPath<?> parentPath = path(grandFather, father);
  
          return path(parentPath, 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).nested(QStatus.status)))</code>
  </p>
  To refer a <code>Status</code> entity in the 'where' clause, one should use <code>J.path(QPerson.person, QContact.contact. QStatus.status).state.eq("active")</code>
  
  @param grandFather parent of parent join path
  @param father      parent join path
  @param path        target join path
  @param <T>         any entity path
  @return entity path with correct alias