Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Persistir entidade com lista pré-preenchida

Colegas,

Estou tentando persistir um objeto "Pai" com relacionamento one-to-many com uma classe "Filho".

Quero que, ao gravar um novo objeto "Pai", uma lista com, digamos, três objetos "Filho" já sejam gravados no banco de dados.

Tentei declará-los no construtor de "Pai", utilizar listeners, funções de callback, e nada.

Alguém pode me ajudar? Estou utilizando Spring MVC, então qualquer alternativa que utilize este framework também é aceita. Continuarei "googlando" aqui e se encontrar a resposta eu publico. Obrigado!

2 respostas

Oi Henrique, tudo bem?

Pode existir diversos problemas quando estamos lidando com relacionamentos e queremos persistir de forma automáticamente.

Só confirma por gentileza se o que está acontecendo é algo próximo do exemplo abaixo:

public class A {

    @OneToMany
    private List<B> b;

    //atributos e métodos
}

public B {

    //atributos e métodos
}

Então, vc instancia 3 objetos da classe B e manda pra lista b da classe A. Em seguida, você tenta persistir a classe A, mas não salva os objetos contidos na classe b automaticamente. É esse o seu cenário atual? Quero ter certeza antes de passar uma possível solução.

Além disso, seria mais interessante se você mandasse o erro que está aparecendo pra você na stack trace.

Abraços

solução!

Alex, obrigado pela resposta.

Primeiramente, já havia encontrado a solução para o problema. Tentei postar aqui há alguns instantes, mas o botão "Responder" retornou 404 (!) :P

Sim, era exatamente isso o que eu queria. Utilizei um método anotado com @javax.persistence.PrePersist do JPA e populei a lista com este método.

Não havia stack trace retornado. Apenas o banco de dados não estava sendo gravado.

Fica a dica para os demais participantes do fórum: utilizem os interceptors do JPA/Hibernate quando necessário.