我正在建立一个制造商检查系统,我有这个用户组模型:
@Entity
@Table(name="usergroups")
public class Usergroup
{
@Id
@Column(name='id')
private long id;
@Column(name='name')
private String name;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "usergroups_permissions",
joinColumns = @JoinColumn(name = "USERGROUP_ID",referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "PERMISSION_ID",referencedColumnName = "ID"))
@JsonManagedReference
private Set<Permission> permissions;
//getter and setter methods
}
这是我的权限模型:
@Entity
@Table(name="permissions")
public class Permission
{
@Id
@Column(name='id')
private long id;
@Column(name='name')
private String name;
//getter and setter methods
}
在我的用户组控制器中:
public class UsergroupsController
{
@Autowired
UsergroupRepository repository;
//create usergroup
private void createUsergroup(@RequestParam String name, @RequestParam Set<Permission>permissions)
{
Usergroup group=new Usergroup();
group.setName(name);
group.setPermissions(permissions);
repository.save(group);
}
//save usergroup changes
private void editUsergroup(@RequestParam Long id)
{
Usergroup original_usergroup=repository.findOne(id);
Usergroup temporary_usergroup=new Usergroup();
temporary_usergroup.setName(original_usergroup.getName);
temporary_usergroup.setPermissions(original_usergroup.getPermissions);
repository.save(temporary_usergroup):
}
}
当我运行程序时,我收到此错误:&#34;找到对集合的共享引用:com.project.test.models.Usergroup.permissions
错误来自这一行:
temporary_usergroup.setPermissions(original_usergroup.getPermissions);
如何将原始用户组的权限设置为临时用户组的权限?