org.hibernate.MappingException: Columna repetida en la asignación para la entidad

Estoy haciendo un sistema de encuesta simple. Tengo 2 mesas:

Person: ID, Nombre, Apellido

Vote: ID, Vote (Booleano), VoterID (Esto es en realidadFK_PersonID), PersonID (esto es en realidadFK_PersonID también).

Necesito poder identificarquien echó la votación así comopara quién fue la votación - utilizando las personas almacenadas en elPerson mesa paraambos de estas necesidades. La mesaPerson contiene los detalles del usuario de las personas que pueden "Votar" y ser "Votado por". Se permite a las personas decidir si quieren votar por sí mismas o no.

He trazado mis tablas en midomain objetos como este:

Persona

    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;
    }

Votar

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;
}

Mensaje de error

Causado por: org.hibernate.MappingException: Columna repetida en la asignación para la entidad: web.poll.domain.Vote columna: personID (debe asignarse con insert = "false" update = "false")

Respuestas a la pregunta(2)

Su respuesta a la pregunta