Persist cascate gerando id no banco

Tenho as classes
A e B
B tem um pk de A.
ex

A
id
nome

B
id
nomeB
fk_A

A a = new A();
a.setNome(“A”);

B b = new B();
b.setNomeB(“B”);
b.setFK_A(a);
em.persit(b);

botei o mapeamento para salvar em cascate. e mandei gerar o id no banco .
queria poder persit b e ele persist A .
quando do persit em A ele gera o id .
e quando vou dar o persist emm B ele da erro reclamando que o id de A esta null.
alguem sabe como fazer isso ?persist o object b ele salvar A gerando o id já que estou mandando gerar no banco .

recupere esse id do banco e sete na classe B antes de tentar persistí-la. seria bem mais fácil se você postasse o código.

O que vc está falando é o que eu quero evitar de fazer pq senão vou ter que criar um persit especifico para cada objeto do meu projeto.
quero evitar de fazer isso se tiver como .

Tem certeza que colocou o mapeamento ??

mostra o mapeamento… por exemplo, usando JPA seria

[code]

import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import static javax.persistence.FetchType.EAGER;
import javax.persistence.Column;
import static javax.persistence.CascadeType.MERGE;
import static javax.persistence.CascadeType.PERSIST;
import static javax.persistence.CascadeType.REFRESH;

public class B {
@Id
@GeneratedValue(strategy = IDENTITY)
private Integer id;

@Column(name="nome")
private String nomeB;

@ManyToOne(fetch=EAGER,cascade={PERSIST,MERGE,REFRESH})
@JoinColumn(name="fk_a", nullable=false)
private A a;

}[/code]

com esse mapeamento funciona… pq aqui pra mim funciona…

c quiser que quando B for apagado, ele tb apague A… ai precisa adcionar o cascade REMOVE, ou então no lugar ods 3 colocar cascade ALL