如何在 hibernate 中使用连接表

How to use join tables with hibernate

我在使用休眠 select 使用代表多对多的连接 table 时遇到了一些困难。

我有以下三个table(粗体代表链接/键)

用户{id,用户名,密码}

群组{id,名称,scpid}

加入table=成员{id,groupId,用户名}

所以我有这样的场景,在我的用户和组的 DAO 中,我想分别获得可用的组和可用的成员。

这意味着我需要提供映射,但不确定如何执行此操作。到目前为止,为了获得用户组,我已经尝试过类似的方法,但它抱怨重复的用户名

@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "member", joinColumns = {@JoinColumn(name = "username", nullable = false, updatable = false)}, inverseJoinColumns = {@JoinColumn(name = "username", nullable = false, updatable = false)})
public Set<Group> getGroups()
{
    return userGroups;
}

public void setGroups(Set<Group> userGroups)
{
    this.userGroups = userGroups;
}

谁能帮我确定我将如何解决这个问题?

谢谢

根据提供的代码片段,@JoinColumnname 属性都具有 username 作为值。