'Persist Inheritance Mapping at Once

I have this Mapping hierarchy, I want to persiste all of the sub-classes with single post request.

                                A
                               ---
                                |
                                B
                     ----------------------------
                     |         |        |       |
                     C         D        E       F
                     |
                     C1        D1
                     |      -----------
                     |      |         |
                     |      D2        D3 
                     |
                     C2
                     |
                     C3

CLASS B

@Getter
@Setter
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class B {

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "FK_C")
    private C c;
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "FK_D")
    private D d;
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "FK_E")
    private E e;
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "FK_F")
    private F f;

CLASS C1

@Getter
@Setter
@Entity
@AllArgsConstructor
@NoArgsConstructor
@DiscriminatorValue("C1_Entity")
public class C1 extends B {
    @OneToOne
    private C2 c2;

CLASS C2

 @Getter
 @Setter
 @Entity
 @AllArgsConstructor
 @NoArgsConstructor
 @DiscriminatorValue("C1_Entity")
 public class C3 {
      @OneToOne
      private C3 c3;

Class D

@Getter
@Setter
@Entity
@AllArgsConstructor
@NoArgsConstructor
@DiscriminatorValue("D1_Entity")
public class D extends B {
    private String name;
    @OneToOne
    private D1 d1;

CLass D1

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@JsonIgnoreProperties(ignoreUnknown = true)
public class D1 {
    @Id
    private int id;
    private String name;
    @OneToOne
    private D2 d2;
    @OneToOne
    private D3 d3;

Class D2 and D3 have just properties with getters and setters All repositories of the classes are presented Any Suggestion Please PS: If more details needed I'll be updating the topic, Thank you



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source