Java tutorial
/* * 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.Doce; 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 DoceController extends ProdutoController { private Doce doce; public DoceController() { doce = new Doce(); } @Override public void salvarHerdeiro() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); Transaction tx = s.beginTransaction(); try { s.save(this.doce); 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.doce); 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.doce); 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("Doce.findByIdDoce"); q.setParameter("idDoce", id); Doce d = (Doce) q.getSingleResult(); factory.close(); em.close(); return d; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao buscar Doce: " + e.getMessage()); } return null; } @Override public List buscarTodosHerdeiros() { SessionFactory sf = HibernateUtil.getSessionFactory(); Session s = sf.openSession(); try { List<Doce> lista = s.createCriteria(Doce.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) { doce.setProduto(produto); doce.setIdDoce(idProduto); doce.setPreco(ph1); doce.setQtdMinima(ph2); } public Doce getDoce() { return doce; } public void setDoce(Doce doce) { this.doce = doce; } }