@SuppressWarnings("unchecked")
 public List<CategoriaDocumento> findByDescricaoAndUsuario(String descricao, Usuario usuario) {
   Criteria criteria = getSession().createCriteria(CategoriaDocumento.class);
   criteria.add(Restrictions.ilike("descricao", descricao, MatchMode.ANYWHERE));
   if (!usuario.getLogin().equals("admin")) {
     criteria.add(Restrictions.eq("usuario.id", usuario.getId()));
   }
   return criteria.addOrder(Order.asc("descricao")).list();
 }
  @SuppressWarnings("unchecked")
  public List<Documento> findByNomeAndCategoriaDocumentoByUsuario(
      String nome, CategoriaDocumento categoriaDocumento, Usuario usuario) {
    StringBuilder hql = new StringBuilder();
    hql.append("FROM Documento documento WHERE ");
    if (categoriaDocumento != null) {
      hql.append("documento.categoriaDocumento = :tipo AND ");
    }
    if (nome != null && !nome.isEmpty()) {
      hql.append("documento.nome LIKE '%");
      hql.append(nome);
      hql.append("%' AND ");
    }

    hql.append("documento.categoriaDocumento.usuario.id = :idUsuario ORDER BY documento.nome ASC");

    Query hqlQuery = getQuery(hql.toString());
    if (categoriaDocumento != null) {
      hqlQuery.setParameter("tipo", categoriaDocumento);
    }

    hqlQuery.setParameter("idUsuario", usuario.getId());

    return hqlQuery.list();
  }
 @SuppressWarnings("unchecked")
 public List<Documento> findByUsuario(Usuario usuario) {
   Criteria criteria =
       getSession()
           .createCriteria(Documento.class, "documento")
           .createAlias("documento.categoriaDocumento", "categoria", JoinType.INNER_JOIN);
   criteria.add(Restrictions.eq("categoria.usuario.id", usuario.getId()));
   return criteria.addOrder(Order.asc("documento.nome")).list();
 }
 @SuppressWarnings("unchecked")
 public List<CategoriaDocumento> findByUsuario(Usuario usuario) {
   Criteria criteria = getSession().createCriteria(CategoriaDocumento.class);
   criteria.add(Restrictions.eq("usuario.id", usuario.getId()));
   return criteria.addOrder(Order.asc("descricao")).list();
 }