Java tutorial
/*** Copyright (c) 2012 - 2020 Hrcules S. S. Jos Este arquivo parte do programa Oramento Domstico. Oramento Domstico um software livre; voc pode redistribui-lo e/ou modific-lo dentro dos termos da Licena Pblica Geral Menor GNU como publicada pela Fundao do Software Livre (FSF); na verso 2.1 da Licena. Este programa distribudo na esperana que possa ser til, mas SEM NENHUMA GARANTIA; sem uma garantia implcita de ADEQUAO a qualquer MERCADO ou APLICAO EM PARTICULAR. Veja a Licena Pblica Geral Menor GNU em portugus para maiores detalhes. Voc deve ter recebido uma cpia da Licena Pblica Geral Menor GNU sob o nome de "LICENSE.TXT" junto com este programa, se no, acesse o site do projeto no endereco https://github.com/herculeshssj/orcamento ou escreva para a Fundao do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Para mais informaes sobre o programa Oramento Domstico e seu autor entre em contato pelo e-mail herculeshssj@outlook.com, ou ainda escreva para Hrcules S. S. Jos, Av. Ministro Lafaeyte de Andrade, 1683 - Bl. 3 Apt 404, Marco II - Nova Iguau, RJ, Brasil. ***/ package br.com.hslife.orcamento.repository; import java.util.List; import org.hibernate.Criteria; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import br.com.hslife.orcamento.entity.Arquivo; import br.com.hslife.orcamento.entity.Documento; import br.com.hslife.orcamento.entity.FaturaCartao; import br.com.hslife.orcamento.entity.LancamentoConta; import br.com.hslife.orcamento.entity.LancamentoPeriodico; import br.com.hslife.orcamento.model.CriterioArquivo; @Repository public class ArquivoRepository extends AbstractRepository { @SuppressWarnings("unchecked") public List<Arquivo> findByCriterioArquivo(CriterioArquivo criterio) { Criteria criteria = getSession().createCriteria(Arquivo.class); if (criterio.getNome() != null && !criterio.getNome().isEmpty()) { criteria.add(Restrictions.ilike("nomeArquivo", criterio.getNome(), MatchMode.ANYWHERE)); } if (criterio.getInicio() != null) { criteria.add(Restrictions.ge("dataCriacao", criterio.getInicio())); } if (criterio.getFim() != null) { criteria.add(Restrictions.le("dataCriacao", criterio.getFim())); } if (criterio.getContainer() != null) { criteria.add(Restrictions.eq("container", criterio.getContainer())); } criteria.add(Restrictions.eq("usuario.id", criterio.getUsuario().getId())); return criteria.addOrder(Order.asc("nomeArquivo")).list(); } public void delete(Arquivo arquivo) { getSession().delete(arquivo); } public boolean deleteFromLancamentoConta(Arquivo arquivo) { LancamentoConta lancamento = (LancamentoConta) getQuery( "FROM LancamentoConta lancamento WHERE lancamento.arquivo.id = :idArquivo") .setLong("idArquivo", arquivo.getId()).uniqueResult(); if (lancamento == null) return false; else { lancamento.setArquivo(null); getSession().update(lancamento); return true; } } public boolean deleteFromFaturaCartao(Arquivo arquivo) { FaturaCartao fatura = (FaturaCartao) getQuery( "FROM FaturaCartao fatura WHERE fatura.arquivo.id = :idArquivo") .setLong("idArquivo", arquivo.getId()).uniqueResult(); if (fatura == null) return false; else { fatura.setArquivo(null); getSession().update(fatura); return true; } } public boolean deleteFromDocumento(Arquivo arquivo) { Documento documento = (Documento) getQuery( "FROM Documento documento WHERE documento.arquivo.id = :idArquivo") .setLong("idArquivo", arquivo.getId()).uniqueResult(); if (documento == null) return false; else { getSession().delete(documento); return true; } } public boolean deleteFromLancamentoPeriodico(Arquivo arquivo) { LancamentoPeriodico lancamento = (LancamentoPeriodico) getQuery( "FROM LancamentoPeriodico lancamento WHERE lancamento.arquivo.id = :idArquivo") .setLong("idArquivo", arquivo.getId()).uniqueResult(); if (lancamento == null) return false; else { lancamento.setArquivo(null); getSession().update(lancamento); return true; } } }