com.ust.coppel.incentivos.repository.impl.MenuRepositoryImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.ust.coppel.incentivos.repository.impl.MenuRepositoryImpl.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 com.ust.coppel.incentivos.repository.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.model.admin.CatMenu;
import com.ust.coppel.incentivos.repository.MenuRepository;

/**
 *
 * @author U39735
 */
@Repository
@SuppressWarnings({ "unchecked", "rawtypes" })
public class MenuRepositoryImpl implements MenuRepository {

    private SessionFactory sessionFactory;

    @Transactional
    @Override
    public List<CatMenu> findAll() {
        Session session = sessionFactory.getCurrentSession();
        List list = session.createQuery("from CatMenu").list();
        return list;
    }

    @Transactional
    @Override
    public void add(CatMenu menu) {

        Session session = sessionFactory.getCurrentSession();

        Criteria criteria = session.createCriteria(CatMenu.class).setProjection(Projections.max("iduMenu"));
        Integer max = ((Integer) criteria.uniqueResult());
        if (max != null)
            max += 1;
        else
            max = 1;
        menu.setIduMenu(max);
        session.save(menu);

    }

    @Transactional
    @Override
    public void update(CatMenu menu) {

        Session session = sessionFactory.getCurrentSession();
        session.update(menu);

    }

    @Transactional
    @Override
    public void remove(CatMenu menu) {
        Session session = sessionFactory.getCurrentSession();

        session.delete(menu);
    }

    @Transactional
    @Override
    public CatMenu find(Integer Id) {
        Session session = sessionFactory.getCurrentSession();

        Criteria criteria = session.createCriteria(CatMenu.class);

        criteria.add(Restrictions.eq("iduMenu", Id));
        CatMenu aux = null;
        for (Object aux1 : criteria.list()) {
            aux = (CatMenu) aux1;
        }
        return aux;
    }

    @Transactional
    @Override
    public List<CatMenu> getChildren(Integer idMenu) {

        Session session = sessionFactory.getCurrentSession();

        Criteria criteria = session.createCriteria(CatMenu.class);

        criteria.add(Restrictions.eq("numMenusup", idMenu));
        List<CatMenu> list = criteria.list();
        return list;
    }

    @Transactional
    @Override
    public List<Object[]> getMenuByPerfil(Integer idMenu, Integer idPerfil) {

        Session session = sessionFactory.getCurrentSession();
        List<Object[]> list = null;
        try {
            String sql = "SELECT menu, permission FROM CatMenu menu, CtlPermisos permission WHERE menu.iduMenu=permission.id.iduMenu "
                    + "and permission.id.iduPerfil= :idPerfil and menu.numMenusup= :idMenu "
                    + "order by menu.numOrden ";

            Query query = session.createQuery(sql);
            query.setInteger("idPerfil", idPerfil);
            query.setInteger("idMenu", idMenu);
            list = query.list();
        } catch (Exception e) {
            System.out.println("Error - " + e.getMessage());
        }
        return list;
    }
}