controller.PessoaFisicaController.java Source code

Java tutorial

Introduction

Here is the source code for controller.PessoaFisicaController.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;

import java.awt.HeadlessException;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.JOptionPane;
import model.Contato;
import model.InterfaceContato;
import model.PessoaFisica;
import org.hibernate.HibernateException;
import org.hibernate.PropertyValueException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import util.HibernateUtil;

/**
 *
 * @author thales
 */
public class PessoaFisicaController extends ContatoController {

    private PessoaFisica pessoa;

    public PessoaFisicaController() {
        pessoa = new PessoaFisica();
    }

    @Override
    public void salvarHerdeiro() {
        SessionFactory sf = HibernateUtil.getSessionFactory();
        Session s = sf.openSession();
        Transaction tx = s.beginTransaction();

        try {
            s.save(this.pessoa);
            tx.commit();
            JOptionPane.showMessageDialog(null, "Dado Inserido com Sucesso!");
        } catch (HeadlessException e) {
            JOptionPane.showMessageDialog(null, "Erro ao inserir os dados: " + e.getMessage());
            tx.rollback();
        } catch (PropertyValueException e) {
            JOptionPane.showMessageDialog(null,
                    "Erro ao inserir os dados, verifique se algum campo est nulo.\n" + e.getMessage());
            tx.rollback();
        }

        s.close();
    }

    @Override
    public void atualizarHerdeiro() {
        SessionFactory sf = HibernateUtil.getSessionFactory();
        Session s = sf.openSession();
        Transaction tx = s.beginTransaction();

        try {
            s.merge(this.pessoa);
            tx.commit();
            JOptionPane.showMessageDialog(null, "Dado Atualizado com Sucesso!");
        } catch (HeadlessException e) {
            JOptionPane.showMessageDialog(null, "Erro ao atualizar os dados: " + e.getMessage());
            tx.rollback();
        }

        s.close();
    }

    @Override
    public void deletarHerdeiro() {
        SessionFactory sf = HibernateUtil.getSessionFactory();
        Session s = sf.openSession();
        Transaction tx = s.beginTransaction();

        try {
            s.delete(this.pessoa);
            tx.commit();
            JOptionPane.showMessageDialog(null, "Dado Deletado com Sucesso!");
        } catch (HeadlessException e) {
            JOptionPane.showMessageDialog(null, "Erro ao deletar os dados: " + e.getMessage());
            tx.rollback();
        }

        s.close();
    }

    @Override
    public InterfaceContato buscarHerdeiro(int id) {
        try {
            EntityManagerFactory factory = Persistence.createEntityManagerFactory("sistemarf-hPU");
            EntityManager em = factory.createEntityManager();
            Query q = em.createNamedQuery("PessoaFisica.findByIdPessoaFisica");
            q.setParameter("idPessoaFisica", id);
            PessoaFisica pf = (PessoaFisica) q.getSingleResult();

            em.close();
            factory.close();
            return pf;

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao buscar Pessoa Fisica: " + e.getMessage());
        }

        return null;
    }

    @Override
    public List buscarTodosHerdeiros() {
        SessionFactory sf = HibernateUtil.getSessionFactory();
        Session s = sf.openSession();

        try {
            List<PessoaFisica> lista = s.createCriteria(PessoaFisica.class).list();
            s.close();

            return lista;

        } catch (HibernateException e) {
            JOptionPane.showMessageDialog(null, "Erro ao listar os dados: " + e.getMessage());
        }

        return null;
    }

    public PessoaFisica getPessoa() {
        return pessoa;
    }

    public void setPessoa(PessoaFisica pessoa) {
        this.pessoa = pessoa;
    }

    @Override
    public void criarHerdeiro(Contato contato, int idContato, String ph1, String ph2, String ph3, String ph4,
            Object util) {
        pessoa.setContato(contato);
        pessoa.setIdPessoaFisica(idContato);
        pessoa.setSobrenome(ph1);
        pessoa.setCpf(ph2);
        pessoa.setRg(ph3);
        pessoa.setSexo(ph4);
    }

}