Olá, estou tentando gravar registros no banco Oracle em 2 tabelas relacionadas, porém ao tentar realizar o insert, não estou conseguindo popular o ID da tabela para para a tabela filha.
Classe Pai
@Entity
@Table(name = "tabela_pai")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TableHeader {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tabela_pai_s")
@SequenceGenerator(sequenceName = "tabela_pai_s", allocationSize = 1, name = "tabela_pai_s")
private BigDecimal idTabelaPai;
@Column(name = "ds_problema")
private String dsProblema;
@OneToMany(mappedBy = "tableHeader", fetch = FetchType.LAZY, cascade = CascadeType.ALL,targetEntity = TableDetail.class)
private List<TableDetail> detalhes = new ArrayList<>();
Tabela filha
@Entity
@Table(name = "tabela_filha")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GourmetDetalhe {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tabela_filha_s")
@SequenceGenerator(sequenceName = "tabela_filha_s", allocationSize = 1, name = "XCXP_AR_PLANO_GOURMET_DETALH_S")
private BigDecimal idTabelaFilha;
@ManyToOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(name = "id_tabela_pai")
private TableHeader tableHeader;
@Column(name = "ds_nome")
private String nome;
}
Eu recebo uma lista em um json destes dados, ao tentar salvar com o comando saveAll ao inserir o primeiro registro é retornado erro porque ele não consegue recuperar o ID da tabela pai para realizar o insert.
tableRepository.saveAll(tabelHeaders);
O que posso fazer para salvar a lista corretamente?