Есть ли способ избежать установки родительского отношения многие к одному? - PullRequest
0 голосов
/ 04 июня 2019

Я создаю REST-сервис с пружиной с двумя сущностями: Parent и Child.У родителя много детей, а у ребенка один родитель.Я также установил cascade = CascadeType.ALL, поэтому я звоню сохранить только для родителей.У меня есть конечная точка, которая принимает JSON в качестве входных данных.Json содержит Parent и некоторые Child, а затем я хочу сохранить его в базе данных.Проблема заключается в том, что мне нужно явно подключить Parent к Child, без него приложение хранит ноль в качестве внешнего ключа.

@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Parent {

    @Id
    @GeneratedValue
    Long id;

    @NotEmpty
    @OneToMany(mappedBy="parent", cascade=CascadeType.ALL, fetch = FetchType.EAGER)
    Set<Child> children;

    public void setChildren(Set<Child> children) {
        for(Child child : children){
            child.setParent(this);
        }
        this.children = children;
    }
}

@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Product {

    @Id
    @GeneratedValue
    Long id;

    @JsonIgnore
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn
    Parent parent;

}

Есть ли (элегантный) способ избежать цикла for в setChildren?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...