public void salvar() throws Exception {

    EntityManager entityManagerRequisicao = FacesContextUtil.getRequestEntityManager();
    enderecoDAO = new EnderecoDAO(entityManagerRequisicao);
    pessoaDAO = new PessoaDAO(entityManagerRequisicao);
    pessoa.getEndereco().setCidade(cidadeSelecionada);
    pessoa.getEndereco().setTipoLogradouro(tipoLogradouroSelecionado);

    if (pessoa.getId() == null) {

      enderecoDAO.salvar(pessoa.getEndereco());

      pessoaDAO.salvar(pessoa);

      FacesContextUtil.setMensagemInfo("Registro salvo com sucesso");
    } else {
      pessoaDAO.atualizar(pessoa);
      enderecoDAO.atualizar(pessoa.getEndereco());
      FacesContextUtil.setMensagemInfo("Registro atualizado com sucesso.");
    }

    pessoa = new Pessoa();
    estadoSelecionado = new Estado();
    cidadeSelecionada = new Cidade();
    pessoas = pessoaDAO.listarTodasPessoas();

    tabView.setActiveIndex(ABA_CADASTRO);
    tabView.setEffect("fade");
  }
 public List<Pessoa> getPessoas() {
   if (pessoa.getId() != null) {
     CidadeDAO cidadeDAO = new CidadeDAO(FacesContextUtil.getRequestEntityManager());
     cidadeSelecionada = pessoa.getEndereco().getCidade();
     estadoSelecionado = pessoa.getEndereco().getCidade().getEstado();
     tipoLogradouroSelecionado = pessoa.getEndereco().getTipoLogradouro();
     cidades = cidadeDAO.obterCidadePorEstado(estadoSelecionado);
   }
   return pessoas;
 }
  public PessoaBean() {

    Logger logger = Logger.getLogger(PessoaBean.class);

    logger.info("pegando entity manager da requisicao...");
    entityManager = FacesContextUtil.getRequestEntityManager();
    logger.info("instanciando pessoaDAO...");
    pessoaDAO = new PessoaDAO(entityManager);
    logger.info("setando endereço na pessoa...");
    pessoa.setEndereco(new Endereco());
    logger.info("pegando todas as pessoas...");
    pessoas = pessoaDAO.listarTodasPessoas();

    tipoLogradouroDAO = new TipoLogradouroDAO(entityManager);
    logger.info("pegando todos os tipos de logradouros...");
    tipoLogradouros = tipoLogradouroDAO.listarTodos();
  }
  public void listarCidades(AjaxBehaviorEvent event) {

    CidadeDAO cidadeDAO = new CidadeDAO(FacesContextUtil.getRequestEntityManager());
    estadoDAO = new EstadoDAO(FacesContextUtil.getRequestEntityManager());
    cidades = cidadeDAO.obterCidadePorEstado(estadoSelecionado);
  }
 @PostConstruct
 public void init() {
   estadoDAO = new EstadoDAO(FacesContextUtil.getRequestEntityManager());
   estados = estadoDAO.listarEstados();
 }