Задать вопрос
@MaxLich
java developer

Как работать с коллекцией связанных сущностей (их изменение не требуется)?

Здравствуйте. Есть две сущности (политики паролей и группы):
@Entity
@Table(name = "sys_password_policy", schema = "oauth")
public class SysPasswordPolicyEntity implements Serializable {
    private Long policyId;
    private String policyName;
    private Set<SysGroupEntity> sysGroupsByPolicyId;
// ...

    @OneToMany(mappedBy = "sysPasswordPolicyByPasswordPolicyId", fetch = FetchType.LAZY)
    public Set<SysGroupEntity> getSysGroupsByPolicyId() {
        return sysGroupsByPolicyId;
    }

    public void setSysGroupsByPolicyId(Set<SysGroupEntity> sysGroupsByPolicyId) {
        this.sysGroupsByPolicyId = sysGroupsByPolicyId;
    }
}

@Entity
@Table(name = "sys_group", schema = "oauth")
public class SysGroupEntity implements Serializable {
    private Long groupId;
    private String groupName;
    private SysPasswordPolicyEntity sysPasswordPolicyByPasswordPolicyId;

//...

    @ManyToOne
    @JoinColumn(name = "password_policy_id", referencedColumnName = "policy_id")
    public SysPasswordPolicyEntity getSysPasswordPolicyByPasswordPolicyId() {
        return sysPasswordPolicyByPasswordPolicyId;
    }

    public void setSysPasswordPolicyByPasswordPolicyId(SysPasswordPolicyEntity sysPasswordPolicyByPasswordPolicyId) {
        this.sysPasswordPolicyByPasswordPolicyId = sysPasswordPolicyByPasswordPolicyId;
    }
}

Нужно, чтобы:
  • При создании политики можно было ей назначить какие-то группы (группы при этом не должны создаваться, и у них не должны обновляться никакие поля, кроме sysPasswordPolicyByPasswordPolicyId)
  • При обновлении политики можно было удалить из списка группа, а также добавить её из списка (при этом не нужно, чтобы группы удалялись из базы, создавались в базе, и не нужно, чтобы у них в базе обновлялись все поля, кроме sysPasswordPolicyByPasswordPolicyId; нужно, чтобы при удалении из списка значение поля sysPasswordPolicyByPasswordPolicyId становилось null, при добавлении - этому полю присваивалась ссылка на текущую группу)

Как обычно решаются такие задачи? (вроде ситуация стандартная, и часто встречается)

P.S. Пытался искать в интернете, но по моей ситуации сложно что-то найти, а по связанным общим темам пока ничего не нашёл.
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
  • Stepik
    Буткемп "Java: написание веб-сервисов для начинающих"
    1 месяц
    Далее
  • Merion Academy
    Java-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    Java-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • ProductStar
    Java-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы