[RESOLVIDO]Armazenas dados temporáriamente + Primefaces

1 resposta
Cledsonjr

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.

1 Resposta

ErickRAR

Não é preciso salvar em algum lugar, basta adicionar ao Cadastro.

cadastro.getTelefones().add(telefone);

Quando salvar, usando o cascade de maneira correta, ele irá salvar o contato e os telefones associados a ele. Recomendo criar um método para isso, evitando que a lista de contatos seja chamada deste maneira em qualquer lugar.

Mas se mesmo assim quiser salvar, pode usar session.

Criado 18 de setembro de 2012
Ultima resposta 18 de set. de 2012
Respostas 1
Participantes 2