私は単純な投票システムをやっています。私は2つのテーブルを持っています:
Person
: ID、名前、姓
Vote
: ID、Vote (ブール値)、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;
}
エラーメッセージ
原因: org.hibernate.MappingException: エンティティのマッピングで繰り返される列: web.poll.domain.Vote 列: personID (insert="false" update="false" でマップする必要があります)