如何使用jpa将一个实体的集合设置为另一个实体的集合

时间:2017-01-06 14:39:40

标签: java jpa spring-boot

我正在建立一个制造商检查系统,我有这个用户组模型:

@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);

如何将原始用户组的权限设置为临时用户组的权限?

0 个答案:

没有答案