Duvida simples - Persistência - Salvar tabela filho com foreign key para tabela pai, not null

Pessoal,

Estou com uma tabela Filho que tem uma foreing key para tabela pai. Esse campo e not null… ou seja nao posso salvar a filho sem ter a id do pai…

Como faço para salvar?

Exemplo A:

=>Salvo a Pai e pego o id dela e seto na Filho porque é not null…

Um colega meu me falou que tem como eu salvar a filho ja com a id do pai direto… sem salvar a Pai separado… como faria isso?

especifique se eh hibernate ou jdbc

se for Hibernate, na sua classe Bean, para o atributo de ligacao onde está @OneToMany (ou algo parecido), especifique cascade = CascadeType.ALL

[quote=igor_ks]especifique se eh hibernate ou jdbc

se for Hibernate, na sua classe Bean, para o atributo de ligacao onde está @OneToMany (ou algo parecido), especifique cascade = CascadeType.ALL[/quote]

Hibernate

Mas se eu salvar o Filho com o atributo Pai(Sem salvar o pai) ele irá salvar o id direitinho?(id pai na tabela filho)

ele faz isso que vc quer, salvar tudo de uma vez.

posta seu codigo caso vc tenha uma duvida ou deu algum erro.

T+

Pessoal eu setei o Pai(sem id, objeto novo) no atributo do filho e ele fala que não é possivel inserir IdPai, porque é not null!

Como contorno isso?

posta seu codigo ai

Não da para postar o código porque é privado a informação, não posso colocar aqui… Mas a idéia é simples…

Queria salvar um Filho com o Pai, mas o Pai não existe ainda, entendeu?

essa foi boa…rsrs

cara, faz um exemplo que simule sua necessidade, pq sem ver seu codigo é dificil de te ajudar.

t+

Não da para postar o código porque é privado a informação, não posso colocar aqui… Mas a idéia é simples…

Queria salvar um Filho com o Pai, mas o Pai não existe ainda, entendeu?[/quote]

Pela lógica, se o pai não existe, o filho não deveria existir. Simples assim.
Primeiro cria-se o pai, atribui-se esse pai a um filho, depois salva-se o filho com Cascade.All na coluna pai.

Não da para postar o código porque é privado a informação, não posso colocar aqui… Mas a idéia é simples…

Queria salvar um Filho com o Pai, mas o Pai não existe ainda, entendeu?[/quote]

Pela lógica, se o pai não existe, o filho não deveria existir. Simples assim.
Primeiro cria-se o pai, atribui-se esse pai a um filho, depois salva-se o filho com Cascade.All na coluna pai.[/quote]

Então no meu caso tem um pai que não existe… não tem como eu dar um save geral e ele subentender que o pai(novo) eh um novo id e inseri-lo no filho e salvar tudo?

O pai deve ter uma lista de filhos, certo?

Pai pai;
List<Filhos> filhos;

(...)

for (Filho filho:filhos){
    filho.setPai(pai);
}
pai.setFilhos(filhos);

dao.create(pai);