com.contpatri.restful.inventario.jerseyspring.persistence.dao.hibernate.InventarioDAO.java Source code

Java tutorial

Introduction

Here is the source code for com.contpatri.restful.inventario.jerseyspring.persistence.dao.hibernate.InventarioDAO.java

Source

/**
 * Esse documento  parte do cdigo fonte e artefatos relacionados 
 * ao projeto CONTPATRI, em desenvolvimento pela Fbrica de Software
 * da UFG.
 * 
 *  Links relevantes:
 *  Fbrica de Software: http://fs.inf.ufg.br/
 *  Instituto de Informtica UFG: http://www.inf.ufg.br
 *  Projeto CONTPATRI DROPBOX: https://www.dropbox.com/home/CONTPATRI%20-%20012013
 *  Projeto CONTPATRI REDMINE: http://fs.inf.ufg.br/redmine/projects/contpatri-012013-
 *
 * Copyleft  UFG.
 * 
 * Licenciado sobre a licena GNU-GPL v3
 *
 * Voc pode obter uma cpia da licena em http://www.gnu.org/licenses/gpl.html
 * 
 * A menos que especificado ou exigido por legislao local, o software  
 * fornecido "da maneira que est", sem garantias ou condies de qualquer 
 * tipo, nem expressas nem implcitas. Em caso de dvidas referir a licena GNU-GPL.
 */

package com.contpatri.restful.inventario.jerseyspring.persistence.dao.hibernate;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

import com.contpatri.restful.inventario.jerseyspring.persistence.dao.IInventarioDAO;
import com.contpatri.restful.inventario.jerseyspring.persistence.entity.Inventario;

@Repository("inventarioDAO")
public class InventarioDAO extends HibernateDaoSupport implements IInventarioDAO {

    // --------------------------------------------------------------------------

    private Logger log = LoggerFactory.getLogger(InventarioDAO.class);

    // --------------------------------------------------------------------------

    @Autowired
    public void init(SessionFactory sessionFactory) {
        log.debug("inject SessionFactory");

        super.setSessionFactory(sessionFactory);

        this.generateInitData();
    }

    // --------------------------------------------------------------------------

    public void generateInitData() {

        List<Inventario> list = this.listAll();
        final String enderecoUrl = "https://sicop.com/Inventarios_INF";

        if (list.size() == 0) {
            log.debug("generateInitData");

            // exemplos
            criaInventario("INVENTARIO INF 2013", "inventarios/inf/2013", enderecoUrl);

            criaInventario("INVENTARIO INF 2012", "inventarios/inf/2012", enderecoUrl);

            criaInventario("INVENTARIO INF 2011", "inventarios/inf/2011", enderecoUrl);

            criaInventario("INVENTARIO INF 2010", "inventarios/inf/2010", enderecoUrl);
        }
    }

    /**
     * Cria um novo inventario
     */
    private void criaInventario(String nome, String descricao, String enderecoUrl) {
        Inventario vo = new Inventario();
        vo.setName(nome);
        vo.setDescription(descricao);
        vo.setUrl(enderecoUrl);
        this.save(vo);
    }

    // --------------------------------------------------------------------------

    @SuppressWarnings("unchecked")
    public List<Inventario> listAll() {
        log.debug("listAll");
        Criteria c = super.getSession().createCriteria(Inventario.class);
        return c.list();
    }

    public Inventario findById(Long id) {
        log.debug("findById: " + id);
        return (Inventario) super.getHibernateTemplate().get(Inventario.class, id);
    }

    @SuppressWarnings("unchecked")
    public List<Inventario> findByName(String name) {
        log.debug("findByName: " + name);
        Criteria c = super.getSession().createCriteria(Inventario.class);
        c.add(Restrictions.like("name", "%" + name + "%"));
        return c.list();
    }

    public Inventario save(Inventario value) {
        log.debug("save");
        return super.getHibernateTemplate().merge(value);
    }

    public boolean remove(Long id) {
        log.debug("remove: " + id);
        boolean flag = true;
        try {

            super.getHibernateTemplate().delete(this.findById(id));

        } catch (DataAccessException dae) {
            flag = false;
            log.error("DataAccessException", dae);
        }
        return flag;
    }

}