Used to uniquely identify a foreign key, so that we don't join it more than once creating circularities. Note that the table+columns refers to the association owner. These are used to help detect bi-directional associations since the Hibernate runtime metamodel (persisters) do not inherently know this information. For example, consider the Order -> Customer and Customer -> Order(s) bi-directional association; both would be mapped to the {@code ORDER_TABLE.CUST_ID} column. That is the purpose of this struct.
Bit of a misnomer to call this an association attribute. But this follows the legacy use of AssociationKey from old JoinWalkers to denote circular join detection
@author Steve Ebersole
@author Gail Badner
@author Gavin King