Я делаю простую систему опроса. У меня есть 2 таблицы:
Person
:ID, Имя, Фамилия
Vote
:ID, Vote (Boolean ), VoterID (На самом деле этоFK_PersonID
), PersonID (На самом деле это тоже FK_PersonID
).
Мне нужно определить , кто отдал голос, а также , за кого был проголосован-используя людей, сохраненных в таблице Person
для обеих этих потребностей. Таблица Person
содержит информацию о пользователях, которые могут «голосовать», а также быть «за которых голосовали». Людям позволено решать, хотят они голосовать за себя или нет.
Я наметил свои таблицы в своих domain
объектах, подобных этому:
Человек
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;
}
Голосовать
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;
}
Сообщение об ошибке
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")