Hibernate não salva lista do pai

Pessoal, estou tentando salvar um Produto que tem uma lista de Estoques dentro, porém ele não consegue salvar caso haja mais de um objeto Estoque na lista de Estoques dentro do produto. Se ouver apenas um objeto na lista de Estoques dentro do Produto, ele salva o pai e os filhos no banco, porém se o tamanho da lista for mais que 1, ele da essa exceção::

object references an unsaved transient instance - save the transient instance before flushing: br.com.importacaoproduto.modelo.Estoque
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.importacaoproduto.modelo.Estoque

Mapeamentos:

Classe Produto

@Entity
@SequenceGenerator(name = "sq_produto", sequenceName = "sq_produto")
public class Produto implements java.io.Serializable {

// outros campos omitidos

@OneToMany(mappedBy = "produto",cascade=CascadeType.ALL)
private List<Estoque> estoques = new ArrayList<Estoque>();

}

Classe Estoque


@Entity
@SequenceGenerator(name = "sq_estoque", sequenceName = "sq_estoque")
public class Estoque implements Serializable {

// outros campos omitidos

@ManyToOne
private Produto produto;

@OneToMany(mappedBy = "estoque",cascade=CascadeType.ALL)
 private List<Imagem> imagens = new ArrayList();
}

Classe Imagem


@Entity
@SequenceGenerator(name = "sq_imagem", sequenceName = "sq_imagem")
public class Imagem implements java.io.Serializable {

// outros campos omitidos

@ManyToOne
    private Estoque estoque;

A lista de imagens dentro do Estoque são salvas normalmente, porém a lista de Estoques dentro do Produto geram a exceção,…,…

Alguém tem idéia do porquê? Vlw…

Cara repense o seu modelo de entidades, veja bem se um estoque possui vários produtos, a classe estoque deveria conter uma coleção de produtos. Não é bem isso que você tá fazendo, seu mapeamento tá errado. Você inverteu as bolas. Um pra um e um pra vários é parecido no banco, o Hibernate tá tentando manipular como se fosse um pra um, por causa do seu erro no mapeamento, aí arrebenta exceção mesmo.
Eu posso estar enganado, mas como um mesmo produto está em vários estoques?

Espero ter ajudado.

Site:http://www.jorgeluis.eti.br
Blog:http://blog.jorgeluis.eti.br
E-mail:contato@jorgeluis.eti.br

Então cara, considere o seguinte cenário…

Tênis Adidas ClimaCool (produto)

posso ter:
Cor: Azul nos tamanhos 33,34,35,36,37,38…
Preto nos tamanhos 35,36,37,40…

para que não seja gravado vários produtos no banco ficando duplicado, foi criado dessa maneira…

no banco fica assim
Produto - Tênis Adidas ClimaCool

Estoque1 - Azul 33
Estoque2 - Azul 34
Estoque3 - Azul 35
Estoque4 - Azul 36
Estoque5 - Azul 37
Estoque6 - Preto 35
Estoque7 - Preto 36
Estoque8 - Preto 37
Estoque9 - Preto 40

Bom, mas eu consegui identificar o problema

O Hibernate se perdeu na hora de salvar a lista de estoque com a lista de imagem que pertencem a um produto…

Resolvi dessa maneira::

Salvei um produto com a lista de Estoques e cada estoque tinha apenas 1 imagem…ae funcionou…mas o porque disso ja não sei…

Ah beleza então…
Bom que você resolveu, às vezes pra quem tá de fora fica difícil de entender o que acontece!

Site:http://www.jorgeluis.eti.br
Blog:http://blog.jorgeluis.eti.br
E-mail:contato@jorgeluis.eti.br