簡體   English   中英

JPA ManyToMany連接表自動設置索引唯一

[英]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_groupsuser_groups具有user_namegroupname的索引,但是groupname的索引是UK _ ***並標記為UNIQUE,因此我無法添加groupA, userAgroupA, userB因為它將抱怨違反唯一鍵。

我想將兩個值的組合作為聯接表的唯一鍵,所以這里是否缺少任何特定的配置,或者我使用錯了嗎?

好的,事實證明,我在JPA上犯了一個菜鳥錯誤,錯過了該userGroups字段的getter和setter方法。 通過添加它們,表現在可以按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM