我正在尝试设置用户和角色之间的多对多关系。我主要使用JPA存储库,但我也尝试使用和EntityManger。
我的主User对象中有以下内容。
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "svcAuthUserRolev2", schema="dbo", joinColumns = {
@JoinColumn(name = "user_id", updatable=false,insertable=false, nullable = false) },
inverseJoinColumns = { @JoinColumn(name = "role_id",
updatable=false,insertable=false, nullable = false) })
private Set<AuthRoleEntity> roles;
我的角色对象中的以下内容
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "roles")
private Set<AuthUserEntity> users;
无论我做什么,如果我在保存时对用户的角色进行更改,它们会被保留,这不是我想要的。我希望用户对象上的角色只能读取。
答案 0 :(得分:0)
我不确定为什么updateable
和insertable
不起作用,我没有太多使用这些属性。一种可能的解决方案是使AuthRoleEntity
成为多对多关系的拥有实体。只需将@JoinTable
注释移至AuthRoleEntity
,然后将mappedBy
放在AuthUserEntity
上。