Guardando en una sola ejecución dos padres y un hijo Spring JPA
Nunca he tenido un caso en el que quiera guardar varios padres y un hijo de una sola vez. En mi caso, tengo dos entidades padre y un hijo. Las dos entidades padre tienen una clave externa en la entidad hijo.
Tengo un ejemplo como este ->
@Entidad
@Tabla(“parentA”)
public class ParentA
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long ID;
@OneToMany(cascade = CascadeType.ALL, mappedBy=”parentA”)
private List
// Getters y Setters y algunos métodos
}
@Entidad
@Tabla(“ParentB”)
public class ParentB
{
@Column(“CODE”)
private Long code;
@OneToMany(cascade = CascadeType.ALL, mappedBy=”parentB”)
private List
// Getters y Setters y algunos métodos}
@Entidad
@Tabla(“Child”)
public class Child
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(“ID”)
private Long ID;
@Column(“parentA_ID”)
private Long parentAId;
@Column(“code”)
private String code;//from parentB
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “ID”, referencedColumnName = “parentA_ID”)
private ParentA parentA;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “code”, referencedColumnName = “code”)
private ParentB parentB;
// Getters y Setters y algunos métodos}
davy.ai
Si desea guardar varias entidades ParentA y ParentB junto con su entidad Child asociada, puede seguir el siguiente enfoque:
Nota: Dado que la entidad Child tiene claves externas tanto a las entidades ParentA como a las ParentB, es necesario guardar primero las entidades Child antes de guardar las entidades Parent.