'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 |
|---|
