code: public R fetch(String path, String properties) {
      query.fetch(path, properties);
      return root;
    }
docs: Specify a path to <em>fetch</em> with its specific properties to include
  (aka partial object).
  <p>
  When you specify a join this means that property (associated bean(s)) will
  be fetched and populated. If you specify "*" then all the properties of the
  associated bean will be fetched and populated. You can specify a comma
  delimited list of the properties of that associated bean which means that
  only those properties are fetched and populated resulting in a
  "Partial Object" - a bean that only has some of its properties populated.
  </p>
  <p>
  <pre>{@code
  
  // query orders...
  List<Order> orders =
  new QOrder()
  .fetch("customer", "name, phoneNumber")
  .fetch("customer.billingAddress", "*")
  .findList();
  
  }</pre>
  <p>
  If columns is null or "*" then all columns/properties for that path are fetched.
  </p>
  
  <pre>{@code
  
  List<Customer> customers =
  new QCustomer()
  .select("name, status")
  .fetch("contacts", "firstName,lastName,email")
  .findList();
  
  }</pre>
  
  @param path       the path of an associated (OneToOne, OneToMany, ManyToOne or ManyToMany) bean.
  @param properties properties of the associated bean that you want to include in the
  fetch (* means all properties, null also means all properties).