Bom tarde.
Estou desenvolvendo uma tela de cadastro.
O meu problema é o seguinte:
O usuário entra no sistema e digitas os dados pessoais e os telefones, porem quero que ele vá digitando os telefones e eles apareção em uma lista de N telefones. Para só depois salvar no BD ligando o id do cadastro do cliente com a tabela dos telefones, ou seja salvar tudo de uma vez. Como eu posso fazer isso?
Segue as classe para melhor visualização.
package br.com.autocom.modelo;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
@SequenceGenerator(name = "Cadastro_Sequencia", sequenceName = "Cadastro_Sequencia")
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Cadastro implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="Cadastro_Sequencia")
@Column(name="codigoCadastro")
private int codigoCadastro;
private String razaoSocial;
private String nomeFantasia;
private String endereco;
private String cep;
private String setor;
private String obs;
private String cnpjCPF;
private Date dataAtualizado;
private Date dataCadastro;
private Date dataSuspensao;
private String email;
private String InscRg;
private String cidade;
private String estado;
@OneToMany(cascade = { CascadeType.ALL, CascadeType.ALL })
@JoinColumn(name = "codigoTelefone")
private List<Contato> telefone;
public int getCodigoCadastro() {
return codigoCadastro;
}
public void setCodigoCadastro(int codigoCadastro) {
this.codigoCadastro = codigoCadastro;
}
public String getRazaoSocial() {
return razaoSocial;
}
public void setRazaoSocial(String razaoSocial) {
this.razaoSocial = razaoSocial;
}
public String getNomeFantasia() {
return nomeFantasia;
}
public void setNomeFantasia(String nomeFantasia) {
this.nomeFantasia = nomeFantasia;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getSetor() {
return setor;
}
public void setSetor(String setor) {
this.setor = setor;
}
public String getObs() {
return obs;
}
public void setObs(String obs) {
this.obs = obs;
}
public String getCnpjCPF() {
return cnpjCPF;
}
public void setCnpjCPF(String cnpjCPF) {
this.cnpjCPF = cnpjCPF;
}
public Date getDataAtualizado() {
return dataAtualizado;
}
public void setDataAtualizado(Date dataAtualizado) {
this.dataAtualizado = dataAtualizado;
}
public Date getDataCadastro() {
return dataCadastro;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
public Date getDataSuspensao() {
return dataSuspensao;
}
public void setDataSuspensao(Date dataSuspensao) {
this.dataSuspensao = dataSuspensao;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getInscRg() {
return InscRg;
}
public void setInscRg(String inscRg) {
InscRg = inscRg;
}
public List<Contato> getTelefone() {
return telefone;
}
public void setTelefone(List<Contato> telefone) {
this.telefone = telefone;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
}
package br.com.autocom.modelo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
@Entity
//@SequenceGenerator(name = "CadastroProduto_Sequencia", sequenceName = "CadastroProduto_Sequencia")
@SequenceGenerator(name="Cadastro_Sequencia", sequenceName="CadastroFornecedor_Sequencia")
public class CadastroFornecedor extends Cadastro implements Serializable {
private static final long serialVersionUID = 1L;
private boolean horarioSerico;
private boolean automacao;
public boolean isHorarioSerico() {
return horarioSerico;
}
public void setHorarioSerico(boolean horarioSerico) {
this.horarioSerico = horarioSerico;
}
public boolean isAutomacao() {
return automacao;
}
public void setAutomacao(boolean automacao) {
this.automacao = automacao;
}
}
package br.com.autocom.modelo;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
@Entity
@SequenceGenerator(name = "Contato_Sequencia", sequenceName = "Contato_Sequencia")
public class Contato implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="Contato_Sequencia")
@Column(name="codigoContato")
private int codigoContato;
private String numeroTelefoneEmail;
private String nomeContato;
private int tipoContato;
@ManyToOne(cascade=CascadeType.DETACH)
private Cadastro cadastro;
public int getCodigoContato() {
return codigoContato;
}
public void setCodigoContato(int codigoContato) {
this.codigoContato = codigoContato;
}
public String getNumeroTelefoneEmail() {
return numeroTelefoneEmail;
}
public void setNumeroTelefoneEmail(String numeroTelefoneEmail) {
this.numeroTelefoneEmail = numeroTelefoneEmail;
}
public String getNomeContato() {
return nomeContato;
}
public void setNomeContato(String nomeContato) {
this.nomeContato = nomeContato;
}
public int getTipoContato() {
return tipoContato;
}
public void setTipoContato(int tipoContato) {
this.tipoContato = tipoContato;
}
public Cadastro getCadastro() {
return cadastro;
}
public void setCadastro(Cadastro cadastro) {
this.cadastro = cadastro;
}
}
Devo usar oque para armazenar esses contatos provisóriamente? E como salvá-los interligando com o cadsatro? Estou usando o Hibernate e Primefaces.