Galera, boa noite!
Estou com a cabeça quente já e não consigo resolver essa bronca.
Tenho um mapeamento onde existe um movimento de cardapio que está ligado ao item e ao naoItem (vou dealhar melhor)
um movCardapio pode ter n itens
um movCardapio pode ter n nãoItens (não item é o que você quer remover da sua refeicao)
Quando faço o insert via hibernate, ele até faz todo mapeamento da forma correta, porém, os filhos ficam sem o código do pai e como é uma FK, da problema.
Exemplo:
@Entity
@Table(name="mov_cardapio")
public class MovCardapioDTO {
@SequenceGenerator(name = "Seq", sequenceName = "SEQ_MOV_CARDAPIO", allocationSize = 1)
@GeneratedValue(strategy = javax.persistence.GenerationType.SEQUENCE, generator = "Seq")
@Id
@Column(name="cd_mov_cardapio")
private Long cdMovCardapio;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "cd_mov_cardapio")
private List<ItMovCardapioDTO> itMovCardapio;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "cd_mov_cardapio")
private List<ItMovCardExclusaoDTO> itMovCardExclusao;
get... set..
}
@Entity
@Table(name = "itmov_cardapio")
public class ItMovCardapioDTO {
@SequenceGenerator(name = "Seq", sequenceName = "SEQ_ITMOV_CARDAPIO", allocationSize = 1)
@GeneratedValue(strategy = javax.persistence.GenerationType.SEQUENCE, generator = "Seq")
@Id
@Column(name = "cd_itmov_cardapio")
private Long cdItMovCardapio;
@ManyToOne
@JoinColumn(name = "cd_mov_cardapio")
private MovCardapioDTO cdMovCardapio;
}
@Entity
@Table(name = "itmov_card_exclusao")
public class ItMovCardExclusaoDTO {
@SequenceGenerator(name = "Seq", sequenceName = "SEQ_ITMOV_CARDAPIO_EXCL", allocationSize = 1)
@GeneratedValue(strategy = javax.persistence.GenerationType.SEQUENCE, generator = "Seq")
@Id
@Column(name = "cd_itmov_card_excl")
private Long cdItMovCardExcl;
@ManyToOne
@JoinColumn(name = "cd_mov_cardapio")
private MovCardapioDTO cdMovCardapio;
}
Sempre que tento salvar a informação, me ocorre esse erro
Hibernate: select SEQ_MOV_CARDAPIO.nextval from dual
Hibernate: select SEQ_ITMOV_CARDAPIO_EXCL.nextval from dual
Hibernate: select SEQ_ITMOV_CARDAPIO.nextval from dual
Hibernate: insert into mov_cardapio (cd_atendimento, cd_setor, cd_usuario, ds_diagnostico, dt_mov_cardapio, obs_nutricao, cd_unid_int, cd_mov_cardapio) values (?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into itmov_card_exclusao (cd_mov_cardapio, tp_itmov_cardapio, cd_itmov_card_excl) values (?, ?, ?)
WARN [main] (JDBCExceptionReporter.java:100) - SQL Error: 1400, SQLState: 23000
ERROR [main] (JDBCExceptionReporter.java:101) - ORA-01400: cannot insert NULL into ("ITMOV_CARD_EXCLUSAO"."CD_MOV_CARDAPIO")
Alguém tem alguma luz? já tentei com @MappedBy e outras opções porém não consigo sair deste ponto!