如何在 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;
}
谁能帮我确定我将如何解决这个问题?
谢谢
根据提供的代码片段,@JoinColumn
的 name
属性都具有 username
作为值。
我在使用休眠 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;
}
谁能帮我确定我将如何解决这个问题?
谢谢
根据提供的代码片段,@JoinColumn
的 name
属性都具有 username
作为值。