Carregar Menu na tela

0 respostas
M

Pessoal,

estou com um pequeno problema em um dos sistemas aqui. Assim, o sistema quando inicia o menu dele é carregado a depender do perfil do usuário, só que existe no banco uma tabela chamada menu, onde tem 4 itens e cada item desse tem seus sub-itens. O problema é que se para um determinado usuário for marcado no perfil dele as suas devidas permissões e nelas não conter nenhum dos 4 itens, o menu não é exibido.

query = this.entityManager.createQuery("SELECT m FROM Menu AS m JOIN FETCH m.funcionalidade AS f JOIN f.papeis AS p WHERE f.funcionalidadePai is null AND p.id = :idPapel ORDER BY m.ordemMenu");
        query.setParameter("idPapel", usuario.getPapel().getId());

        List<Menu> menu = query.getResultList();

        this.entityManager.flush();
        this.entityManager.clear();

        for (Menu m : menu) {
            Funcionalidade funcionalidade = m.getFuncionalidade();
            query = this.entityManager.createQuery("SELECT f FROM Funcionalidade f JOIN f.papeis AS p WHERE f.funcionalidadePai = :funcionalidade AND p.id = :idPapel ORDER BY f.nome");
            query.setParameter("idPapel", usuario.getPapel().getId());
            query.setParameter("funcionalidade", funcionalidade);
            funcionalidade.setFuncionalidadesFilhas(query.getResultList());
        }

        return menu;
    }

esse é o cógio do Dao.
A chamada desse método ai vem desse código:

Map<String, List<Funcionalidade>> mapMenus = new TreeMap<String, List<Funcionalidade>>();
        List<Menu> menus = menuDao.getByUsuario(usuario);


            for (Menu menu : menus) {

                mapMenus.put(menu.getNome(), menu.getFuncionalidade().getFuncionalidadesFilhas());
            }

Algúem pode me da uma ajuda?

Criado 8 de fevereiro de 2010
Respostas 0
Participantes 1