У меня есть эти два объекта, в которых группа в виде списка разрешений и разрешений принадлежит группе:
GroupClass:
@Entity
@Table(name = "group")
public class GroupEntity {
@Id
private String name;
@OneToMany(mappedBy = "group",cascade = {CascadeType.ALL})
private Set<Permission> permissions;
public GroupEntity() {
}
public GroupEntity(String name,Permission ...permissions) {
this.name = name;
this.permissions = Stream.of(permissions).collect(Collectors.toSet());
this.permissions.forEach(x -> x.setGroup(this));
}
Класс разрешения:
@Entity
Разрешение публичного класса {
@Id
@GeneratedValue
private Long id;
private String permissionName;
@ManyToOne
private GroupEntity group;
public Permission() {
}
public Permission(String permissionName) {
this.permissionName = permissionName;
}
Чтобы сохранить разрешение, я сделал это:
Permission p2=new Permission("permission2");
permissionRepository.save(p2);
GroupEntity r1 = new GroupEntity("group",p2);
groupRepository.save(r1);
И яЯ думал, что вместо этого, если бы я сделал это, это сработало бы, но Он не знал и не знает почему:
Permission p2=new Permission("permission2");
permissionRepository.save(p2);
GroupEntity r1 = new GroupEntity("group");
p2.setGroup(r1);
permissionRepository.save(p2);
groupRepository.save(r1);
Спасибо!