java多对多不尊重更新和插入
我正在尝试设置用户和角色之间的多对多关系。我主要使用JPA存储库,但我也尝试使用和EntityManger
我的主要用户对象中有以下内容
@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;
无论我做什么,如果我在保存时对用户上的角色进行更改,它们都会被持久化,而这不是我想要的。我希望用户对象上的角色是只读的
# 1 楼答案
我不确定为什么
updateable
和insertable
不起作用,我没有太多地使用这些属性。一种可能的解决方案是使AuthRoleEntity
成为多对多关系的拥有实体。只需将@JoinTable
注释移动到AuthRoleEntity
并将mappedBy
放在AuthUserEntity
上即可