我有2种模型: MySpringSecurityUser 和 Authorities 。
MySpringSecurityUser有一个Collection
字段,其中包含 Authorities 对象。
@Entity
@Table(name="users")
public class MySpringSecurityUser implements UserDetails, Serializable{
...
@OneToMany(fetch = FetchType.EAGER)
@JoinTable
(
name="users_authorities",
joinColumns={ @JoinColumn(name="id_user")},
inverseJoinColumns={ @JoinColumn(name="id_authority") }
)
private Collection<Authorities> authorities;
...
}
这是我的数据库
使用此代码,一切正常。
如果我也尝试映射Authorities对象,为了使该字段包含MySpringSecurityUser对象,我将在MySpringSecurityUser.authorities中获得 duplicate 值。
在 MySpringSecurityUser.authorities 内部,我从联接表 users_authorities 中还获得了绑定到其他用户(具有不同的 id_user 从当前版本开始)
@Entity
@Table(name="authorities")
public final class Authorities implements GrantedAuthority{
...
@ManyToOne(fetch=FetchType.EAGER)
@JoinTable
(
name="users_authorities",
joinColumns={ @JoinColumn(name="id_authority",insertable = false,
updatable = false)},
inverseJoinColumns={ @JoinColumn(name="id_user",insertable = false,
updatable = false) }
)
private MySpringSecurityUser mySpringSecurityUser;
...
}
我的错误是什么? 谢谢您的帮助