title: org.hibernate.MappingException: Repeated column in mapping for entity
body: <p>I am doing a simple Poll system. I have 2 tables:</p>
  
  <p><code>Person</code>: ID, Name, Surname</p>
  
  <p><code>Vote</code>: ID, Vote (Boolean), VoterID (This is actually <code>FK_PersonID</code>), PersonID (This is actually <code>FK_PersonID</code> as well).</p>
  
  <p>I need to be able to identify <strong>who cast</strong> the vote as well as <strong>who the vote was for</strong> - using the people stored in the <code>Person</code> table for <strong>both</strong> of these needs. The table <code>Person</code> contains user details of people that can "Vote" as well as be "Voted for". People are allowed to decide whether they want to vote for themselves or not.</p>
  
  <p>I've mapped out my tables in my <code>domain</code> objects like this:</p>
  
  <p><strong>Person</strong></p>
  
  <pre><code>    private Integer ID;
      private String name;
      private String surname;
  
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      @Column(name = "ID")
      public Integer getID() {
          return ID;
      }
  
      public void setID(Integer ID) {
          this.ID = ID;
      }
  
      @Column(name = "name")
      public String getName() {
          return name;
      }
  
      public void setName(String name) {
          this.name = name;
      }
  
      @Column(name = "surname")
      public String getSurname() {
          return surname;
      }
  
      public void setSurname(String surname) {
          this.surname = surname;
      }
  </code></pre>
  
  <p><strong>Vote</strong></p>
  
  <pre><code>private Integer ID;
  private Person voter;
  private Person person;
  private Boolean vote;
  
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "ID")
  public Integer getID() {
      return ID;
  }
  
  public void setID(Integer ID) {
      this.ID = ID;
  }
  
  @Column(name = "vote")
     public Boolean getVote() {
      return vote;
  }
  
  public void setVote(Boolean vote) {
      this.vote = vote;
  }
  
  @ManyToOne
  @JoinColumn(name = "personID")
  public Person getVoter() {
      return voter;
  }
  
  public void setVoter(Person voter) {
      this.voter = voter;
  }
  
  @ManyToOne
  @JoinColumn(name = "personID")
  public Person getPerson() {
      return person;
  }
  
  public void setPerson(Person person) {
      this.person = person;
  }
  </code></pre>
  
  <p><strong>Error message</strong></p>
  
  <blockquote>
    <p>Caused by: org.hibernate.MappingException: Repeated column in mapping
    for entity: web.poll.domain.Vote column: personID (should be mapped
    with insert="false" update="false")</p>
  </blockquote>