br.com.library.dao.DaoCliente.java Source code

Java tutorial

Introduction

Here is the source code for br.com.library.dao.DaoCliente.java

Source

package br.com.library.dao;

import br.com.library.model.Cliente;
import br.com.library.util.JPAUtil;
import br.com.library.util.StringUtil;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

/*
 * 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.
 */
/**
 *
 * @author Otto
 */
public class DaoCliente implements IDaoCliente {

    private Class clazz;
    EntityManager em = null;
    private Session session;

    public DaoCliente() {

    }

    public void cadastrarCliente(Cliente c) throws Exception {
        try {
            em = JPAUtil.getEntityManager();
            em.getTransaction().begin();
            em.persist(c);
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
            throw new Exception(StringUtil.getStringValue(StringUtil.KEY_MSG_ERRO_CADASTRAR));
        } finally {
            JPAUtil.close();
        }
    }

    public void deletarCliente(Cliente c) throws Exception {
        EntityManager em = null;
        try {
            em = JPAUtil.getEntityManager();
            em.getTransaction().begin();
            em.remove(c);
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
            throw new Exception(StringUtil.getStringValue(StringUtil.KEY_MSG_ERRO_DELETAR));
        } finally {
            JPAUtil.close();
        }
    }

    public void editarCliente(Cliente c) throws Exception {
        EntityManager em = null;
        try {
            em = JPAUtil.getEntityManager();
            em.getTransaction().begin();
            em.merge(c);
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
            throw new Exception(StringUtil.getStringValue(StringUtil.KEY_MSG_ERRO_EDITAR));
        } finally {
            JPAUtil.close();
        }
    }

    public Cliente buscarCliente(long id) throws Exception {
        EntityManager em = null;
        try {
            em = JPAUtil.getEntityManager();
            return em.find(Cliente.class, id);
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception(StringUtil.getStringValue(StringUtil.KEY_MSG_ERRO_BUSCAR));
        } finally {
            JPAUtil.close();
        }
    }

    @Override
    public Cliente buscarClienteNome(String nome) throws Exception {
        EntityManager em = null;
        try {
            em = JPAUtil.getEntityManager();
            Query query = em.createQuery("SELECT c FROM Cliente c WHERE c.nome = :nome");
            query.setParameter("nome", nome);
            return (Cliente) query.getSingleResult();
        } catch (Exception ex) {
            System.err.println("erro " + ex);
        }
        return null;
    }

    @Override
    public List<Cliente> listarCliente() throws Exception {
        EntityManager em = null;
        try {
            em = JPAUtil.getEntityManager();
            Query query = (Query) em.createQuery("SELECT c FROM Cliente c");
            return query.getResultList();
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception(StringUtil.getStringValue(StringUtil.KEY_MSG_ERRO_LISTAR));
        } finally {
            JPAUtil.close();
        }
    }

    @Override
    public List<Cliente> getAllCriteria() throws Exception {
        List<Cliente> resultado = null;
        try {
            Criteria crit = getCriteria();
            return crit.list();
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("");
        }
    }

    @Override
    public Criteria getCriteria() {
        em = JPAUtil.getEntityManager();
        session = ((Session) em.getDelegate());
        return session.createCriteria(Cliente.class);
    }

    @Override
    public List<Cliente> buscarClienteCriteriaNome(String nome) throws Exception {
        try {
            Criteria crit = getCriteria();
            crit.add(Restrictions.isNotNull("nome"));
            return crit.list();
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("");
        }
    }

}