有没有一种方法可以避免将多个父对象设置为一个关系?

时间:2019-06-04 11:48:45

标签: java spring hibernate

我正在使用带有两个实体的弹簧创建REST服务:ParentChild。父母有很多孩子,孩子有一位父母。我还设置了cascade = CascadeType.ALL,所以我只调用父项的save。我有将json作为输入的终点。 Json包含Parent和一些Child,然后我要将其存储到数据库中。问题是我需要显式地将Parent链接到Child,否则应用程序会将null存储为外键。

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

}

有什么(优雅的)方法可以避免setChildren中的for循环?

0 个答案:

没有答案