title: Envers, for a ManyToOne with JoinColumn, is auditing the wrong column
body: <p>When auditing a foreign key, Envers seems to be ignoring the JoinColumn annotation. </p>
  
  <p>E.g. I have a simple class like this:</p>
  
  <pre><code>@Audited
  @Entity
  public class Address {
      @Id
      @GeneratedValue
      private int id;
  
      @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
      @ManyToOne
      @JoinColumn (name="addressTypeFk", referencedColumnName="EntityId",nullable=false)
      private AddressTypeLookup addressType;
  </code></pre>
  
  <p>Which references a lookup table like this:  </p>
  
  <pre><code>@Entity
  public class AddressTypeLookup
  {
      @Id
      @GeneratedValue
      private int id;
      private String descr;
      private int entityId;
  </code></pre>
  
  <p>Notice that the addressType attribute on Address is joining to the entityId column, not the primary key "id" column. Also notice the use of RelationTargetAuditMode.NOT_AUDITED : I want to audit the foreign key, but I don't want to Audit changes to AddressTypeLookup. The problem is, when Envers records changes to the foreign key, it's recording the AddressTypeLookup primary key value "id", not the entityId. How do I make Envers record the entityId values used? </p>
  
  <p>[In case you're wondering why I want this: we have a database of lookup data (aka master / reference data). It records history: all rows have effective from/to dates. The id column is properly unique; the entityId identifies a particular thing - e.g. all versions of a particular address type. All the lookup tables are replicated into an application database - but only the current data is replicated, not the historic data. ]</p>