Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

cache.use_query_cache com Hibernate (@Transactional)

No exemplo setamos passamos o Hint para usar cache nas queries pelo typedQuery. typedQuery.setHint("org.hibernate.cacheable", "true");

Mas haveria uma opção usando o session.createCriteria?

2 respostas
solução!

Acho que consegui com o setCacheable(true);

=)

    public List<Produto> getProdutos(String nome, Integer categoriaId, Integer lojaId) {
        Session session = em.unwrap(Session.class);
        Criteria criteria = session.createCriteria(Produto.class);

        if (!nome.isEmpty()) {//setCacheable = para usarmos o cache 2o nivel:
            criteria.add(Restrictions.like("nome", "%" + nome + "%")).setCacheable(true);
        }

        if (lojaId != null) {
            criteria.add(Restrictions.like("loja.id", lojaId)).setCacheable(true);
        }

        if (categoriaId != null) {
            criteria.setFetchMode("categorias", FetchMode.JOIN)
                .createAlias("categorias", "c")
                .add(Restrictions.like("c.id", categoriaId)).setCacheable(true);
        }



        return (List<Produto>) criteria.list();
    }

Boa Aline :D