[RESOLVIDO] Hibernate -oneToMany- ManytoOne-

Opa, olá pessoal, sou novo aqui no fórum estou com problemas na utilização do Hibernate com relações, a minha classe/tabela = Sacola é relacionada com a classe/tabela = SacolaItems, a inserção esta ocorrendo só que não está passando o id_Sacola para a tabela sacolaitems…

Em minha classe Sacola :

@OneToMany(cascade=CascadeType.ALL)
	@LazyCollection(LazyCollectionOption.FALSE)
	@JoinColumn(name = "sacola_id")
	private List<SacolaItems> sacolaItems;

Em minha classe SacolaItems:
@ManyToOne
	@JoinColumn(name = "sacola_id", insertable=false, updatable=false, nullable=false) //Fk da tabela pai
	private Sacola sacola;

Aqui é onde pego os dados :

Sacola sacola = new Sacola();
sacola.setIdVendedor(IdVendedor);
sacola.setStatus("ABERTO");
sacola.setDataSaida(getTxtData().getDate());
sacola.setValorTotal(new BigDecimal(total));
sacola.setSacolaItems(getModeloTabela().getListaSacola());
sacola.setIdRepresentante(getNomeRepresentante());

Metodo que uso para receber o SacolaItems:

public List<SacolaItems> getListaSacola(){
	return linhas;
}

eu estou meio que com a pulga atras da orelha com esse metodo tbm, porque a tabela sacola itens esta recebendo todos os dados que tem na tabela… o ID da sacola não esta nos campos da tabela e esta setando null … não sei se é isso…
(61, CAMISA, 3, 23, 2.99, R$8,97, null) aqui os dados que estão entrando no sacolaitems… todos menos o idSacola que ta indo null …

Agradeço desde já a vocês porque mesmo sem criar a conta, esse site já me ajudou muito apenas como visitante nestes curtos 3 anos de programação.

1 curtida

Jovem, será necessário iterar o getModeloTabela().getListaSacola(), para colocar o id da sacola

Sacola sacola = new Sacola();
sacola.setIdVendedor(IdVendedor);
sacola.setStatus(“ABERTO”);
sacola.setDataSaida(getTxtData().getDate());
sacola.setValorTotal(new BigDecimal(total));

for(SacolaItem item : getModeloTabela().getListaSacola(){
item.setSacola(sacola);
}

sacola.setSacolaItems(getModeloTabela().getListaSacola());
sacola.setIdRepresentante(getNomeRepresentante());

2 curtidas

opa, Muito Obrigado ! ajudou muito… assim o meu ficou funcionando:

sacola.setIdRepresentante(nomeRepresentante);
sacola.setIdVendedor(IdVendedor);
sacola.setStatus(“ABERTA”);
sacola.setValorTotal(new BigDecimal(total));
for(SacolaItems sacolaItems : getModeloTabela().getListaSacola()){
sacolaItems.setSacola(sacola);
sacola.getSacolaItems().add(sacolaItems);
}

1 curtida