code: @SafeVarargs
    public final R select(TQProperty<R>... properties) {
      StringBuilder selectProps = new StringBuilder(50);
      for (int i = 0; i < properties.length; i++) {
        if (i > 0) {
          selectProps.append(",");
        }
        selectProps.append(properties[i].propertyName());
      }
      query.select(selectProps.toString());
      return root;
    }
docs: Tune the query by specifying the properties to be loaded on the
  'main' root level entity bean (aka partial object).
  <pre>{@code
  
  // alias for the customer properties in select()
  QCustomer cust = QCustomer.alias();
  
  // alias for the contact properties in contacts.fetch()
  QContact contact = QContact.alias();
  
  List<Customer> customers =
  new QCustomer()
  // tune query
  .select(cust.id, cust.name)
  .contacts.fetch(contact.firstName, contact.lastName, contact.email)
  
  // predicates
  .id.greaterThan(1)
  .findList();
  
  }</pre>
  
  @param properties the list of properties to fetch