controller.AluguelPecaController.java Source code

Java tutorial

Introduction

Here is the source code for controller.AluguelPecaController.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.math.BigDecimal;
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.AluguelPeca;
import model.InterfaceProduto;
import model.Produto;
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 AluguelPecaController extends ProdutoController {

    private AluguelPeca peca;

    public AluguelPecaController() {
        peca = new AluguelPeca();
    }

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

        try {
            s.save(this.peca);
            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.peca);
            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.peca);
            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 InterfaceProduto buscarHerdeiro(int id) {
        try {
            EntityManagerFactory factory = Persistence.createEntityManagerFactory("sistemarf-hPU");
            EntityManager em = factory.createEntityManager();
            Query q = em.createNamedQuery("AluguelPeca.findByIdPeca");
            q.setParameter("idPeca", id);
            AluguelPeca p = (AluguelPeca) q.getSingleResult();

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

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

        return null;
    }

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

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

            return lista;

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

        return null;
    }

    @Override
    public void criarHerdeiro(Produto produto, int idProduto, BigDecimal ph1, Integer ph2) {
        peca.setProduto(produto);
        peca.setIdPeca(idProduto);
        peca.setMulta(ph1);
    }

    public AluguelPeca getPeca() {
        return peca;
    }

    public void setPeca(AluguelPeca peca) {
        this.peca = peca;
    }
}