/** * Returns a version of this property that represents an OUTER join. It is * up to caller to ensure that the property corresponds to a relationship, * as "outer" attributes make no sense. */ public Property<E> outer() { return isOuter() ? this : create(name + "+", type); }