[英]JPA ManyToMany join table automatically set index unique
對於JPA來說,在這里還是很新的,並與問題進行了將近兩天的斗爭,尋求幫助。
我的項目使用Spring Data和MySql,目前有一個非常簡單的架構,帶有用戶,組實體。
@Entity
public class User {
public User() {}
public User(String username, boolean superUser, boolean blackList) {
this.username = username;
this.superUser = superUser;
this.blackList = blackList;
}
@Id
String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
...
@ManyToMany
@ElementCollection
@JoinTable(name="user_groups",
joinColumns={@JoinColumn(name="USER_NAME", referencedColumnName="USERNAME")},
inverseJoinColumns={@JoinColumn(name="GROUPNAME")})
List<UserGroup> userGroups;
public void addGroup(UserGroup group) {
if (!this.userGroups.contains(group)){
this.userGroups.add(group);
}
}
}
並且在數據庫中創建的user_groups
表user_groups
具有user_name
和groupname
的索引,但是groupname
的索引是UK _ ***並標記為UNIQUE,因此我無法添加groupA, userA
, groupA, userB
因為它將抱怨違反唯一鍵。
我想將兩個值的組合作為聯接表的唯一鍵,所以這里是否缺少任何特定的配置,或者我使用錯了嗎?
好的,事實證明,我在JPA上犯了一個菜鳥錯誤,錯過了該userGroups
字段的getter和setter方法。 通過添加它們,表現在可以按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.