public AttributeBinding[] getNonIdEntitiesAttributeBindingClosure() {
    AttributeBinding[] results = getNonIdAttributeBindingClosure();

    for (EntityBinding subEntityBinding : getPreOrderSubEntityBindingClosure()) {
      // only add attribute bindings declared for the subEntityBinding

      results = ArrayHelper.join(results, subEntityBinding.internalGetNonIdAttributeBindings());
      // TODO: if EntityBinding.attributeBindings() excludes joined attributes, then they need to be
      // added here
    }
    return results;
  }