如何在實體類中註釋一個Map,其中鍵是實體類,併爲實體類中的常量java對象(在我的情況下爲布爾值)賦值?在Hibernate中註釋一個地圖
我有兩個@Entity類:Voter和Poll。 在民意調查班,我想保留一個地圖<選民布爾>的投票可以投票在這個民意測驗。布爾標記選民是否投了票。因此,映射在選民投票中是多對多的。
我有類:
@Enity
public class Voter {
...some attributes and their getters and setters
private List<Poll> polls;
private int voterId;
@Id
public int getVoterId() {
return voterId;
}
@ManyToMany(mappedBy="voters")
public List<Poll> getPolls() {
return polls;
}
..and setter.
}
@Enity
public class Poll {
...some attributes and their getters and setters
private Map<Voter,Boolean> voters;
@ManyToMany
@JoinColumn(referencedColumnName="voterId")
public Map<Voter,Boolean> getVoters() {
return voters;
}
..and setter.
}
這種運行時,未能引起AnnotationException。 我已經看到註解@MapKeyJoinColumn的使用,並嘗試了它(@JoinColumn的instaed),並失敗。我還沒有找到像這樣的一個例子(地圖的一個實體的關鍵,地圖的價值只是一個對象),所以我基本上使用了嘗試失敗的方式。
所以問題是:我應該把什麼註釋放在哪裏?
我想,你遇到的一個問題是,你在選民類中的@ManyToMany註解指的是Poll.voters字段作爲該關聯的另一端,這不可能是真實的,因爲選民不是真正的領域類型選民。將地圖重命名爲其他名稱,應該修復此錯誤。但是,這並不能解決你的地圖問題。 –