Lista não carrega (HIBERNATE) [RESOLVIDO]

Nao tenho esta tabela derivada porque nao se trata de um N x N.
Mas deixa eu te passar o cenario e como as acoes estao se desenrolando…

1 - O usuario informa os dados requeridos da Venda;
2 - Ainda sem persistir a Venda, ele adiciona os Produtos daquela venda;
3 - Quando clica em salvar, os produtos sao adicionados à venda atraves do setProdutos(List p) e SOMENTE a venda é persistida (embora as anotacoes me garantam tambem a persistencia do produtos)

Ambos estao sendo cadastrados no “mesmo momento” e talvez por isso esteja ficando com a referencia nula. Será que eu tenho que complementar com mais alguma anotacao tipo “antes de inserir os produtos…”

So complementando minha resposta…
Eu entendi errado a sua pergunta ok?
Sao 3 tabelas … considere o que chamei anteriormente de Produto como “ProdutoVenda” , ou seja,
VENDA, PRODUTO e PRODUTOVENDA (1 venda para varios produtos)

E o relacionamento da Venda é com ProdutoVenda (este sim possui N produtos)

isso, pelo mapeamento devem ser criadas 3 tabelas. Deixa ver se eu compreendi. O produto não existe e o mesmo é cadastrado junto com a venda é isso?

Perdao!!! Eu havia explicado de forma incorreta anteriormente, cabeça a mil ja hahaha
Os produtos existem (tabela produto)

1 - Quando vou inserir uma nova Venda, informo os dados necessarios dela - OK
2 - Ainda sem salvar a Venda, eu adiciono os produtos dela na tabela ProdutoVenda(idProduto, quantidade, precoUnit, totalProd)

Entende? O que quero dizer é que tanto a venda (tabela venda), quanto os produtos desta venda (tabela produtovenda) sao persistidos “juntos”.

ok, isso está correto, vc está fazendo essas operações pelo Main?

Fiz tanto pelo main quanto pela app mesmo. Inclusive quando vinculo a venda via SQL no produtovenda a consulta passa a carregar minha lista perfeitamente. O problema esta sendo mesmo ao persistir

`não dá erro ao persistir ou recuperar?

`

Nao da erro algum e salva tanto o mestre quanto o detalhe.
O unico problema mesmo é que os detalhes ficam sem a referencia do mestre.

Acho que o problema ocorre porque quando faço o setProdutosVenda() a Venda ainda nao possui um ID.
Eu pensei que o mapeamento resolveria este tipo de problema ou entao falta eu complementar com alguma coisa

RESOLVIDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

@lucciano01 muito obrigada pela atenção.
A única coisa que tive que fazer foi a cada produtovenda adicionado na tela chamar o setVenda(venda);

Parece algo meio obvio demais de se fazer, mas eu pensei que a anotation resolvia isso nos bastidores… parece que não né!!! Era isso obrigadaaa

Olá. Penso que o objeto produto e venda estão com estado inconsciente. Para resolver este problema vc deve percorrer cada item de produto e setar a venda. Esse eh o caminho

ah…demorei pra postar kkkk desculpa…e que bom que resolveu

`que bom Jessica, mas vc está certa a anotação era para resolver isso, quando vc a mapeou em produtos, que a cada operação de CRUD em venda isso se replicaria para produto era para automaticamente atualizar a tabela venda_produtos p. ex:

tabela venda_produtos

id_venda | id_produto
1 ------------- 1
1 ------------- 2
1 ------------- 5

`

@rickfrocha bom dia kk obrigada tbm
Entao @lucciano01 nao entendi muito bem o pq ter que indicar o setVenda() sendo que os produtovendas estavam sendo persistidos a partir de uma venda (pra mim o hibernate tinha que se tocar a qual venda aqueles produtosvenda pertenciam hahah)