private void handleElements(FromReferenceNode collectionNode, String propertyName) {
    FromElement collectionFromElement = collectionNode.getFromElement();
    QueryableCollection queryableCollection = collectionFromElement.getQueryableCollection();

    String path = collectionNode.getPath() + "[]." + propertyName;
    log.debug("Creating elements for " + path);

    fromElement = collectionFromElement;
    if (!collectionFromElement.isCollectionOfValuesOrComponents()) {
      getWalker().addQuerySpaces(queryableCollection.getElementPersister().getQuerySpaces());
    }

    setDataType(queryableCollection.getElementType());
    selectColumns =
        collectionFromElement.toColumns(fromElement.getTableAlias(), propertyName, inSelect);
  }