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

    String sql =
        "select count(id) from documento where idCategoriaDocumento = "
            + categoriaDocumento.getId();

    Query query = getSession().createSQLQuery(sql);

    BigInteger queryResult = (BigInteger) query.uniqueResult();

    if (queryResult.longValue() == 0) {
      return false;
    }

    return result;
  }
 @SuppressWarnings("unchecked")
 public List<Documento> findByCategoriaDocumento(CategoriaDocumento categoriaDocumento) {
   Criteria criteria = getSession().createCriteria(Documento.class);
   criteria.add(Restrictions.eq("categoriaDocumento.id", categoriaDocumento.getId()));
   return criteria.addOrder(Order.asc("nome")).list();
 }