Caros,
Tenho uma tabela Cliente e uma telefone. Na lógica um cliente pode ter N telefones.
PESSOA
id (auto-incremento)
nome (string)
TELEFONE
id (auto_incremento)
id_pessoa(FK)
numero (String)
Criei um Module EJB pelo Netbeans 6.8 e consigo fazer a persistência tranquilamente de PESSOA.
Tenho uma dúvida de como gravar os dados na tabela Telefone.
PESSOA
public void adicionar(String nome) throws Exception {
try {
Pessoa pessoa = new Pessoa();
pessoa.setNome(nome);
em.persist(pessoa);
} catch (Exception e) {
throw new UnsupportedOperationException("Erro:" + e.getMessage());
}
}
Só que o ID dessa tabela é auto-incremento, eu teria que pegar esse ID e gravar na tabela de telefone e mais o número.
Só que não sei como proceder para gravar o telefone.
Minha classe PESSOA está assim:
@Entity
@Table(name = “pessoa”)
@NamedQueries({
@NamedQuery(name = “Pessoa.find”, query = "SELECT p FROM Pessoa p WHERE p.pesCnpjCpf = :cnpjcpf ")
})
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = “id”, nullable = false)
private Integer id;
@Column(name = “nome”)
private String nome;
@OneToMany(cascade=CascadeType.ALL, mappedBy="pessoa")
private Collection<Telefone> telefone;
public Pessoa() {
}
--refactor dos campos (não coloquei )--
public Collection<Telefone> getTelefone() {
return telefone;
}
public void setTelefone(Collection<Telefone> telefone) {
this.telefone = telefone;
}
}
Minha classe TELEFONE está assim:
@Entity
@Table(name = “telefone”)
@NamedQueries({
@NamedQuery(name = “PessoaFone.findAll”, query = “SELECT p FROM Telefone p”)
})
public class PessoaFone implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne()
@JoinColumn(name = "id", referencedColumnName = "id", insertable = false, updatable = false)
private Pessoa pessoa;
public PessoaFone() {
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
}
Minha dúvida: É como ao adicionar a pessoa, eu automaticamente já inserir os dados na tabela de telefone? Lembrando que na tabela de telefone eu preciso do ID que será gerado (auto-incremento) após inserir a pessoa.
Valeu!! QQ ajuda será bem-vinda.