1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problema com .setMaxResult(1);

Boa tarde, pessoal

Estou querendo retornar apenas o último registro de uma tabela registro com FKs iguais, estou utilizando o .setFirstResult(1); para fazer isso, o problema é que ele me retorna 8 registros, sendo assim, aparece esse erro:

org.hibernate.NonUniqueResultException: query did not return a unique result: 8

Vou colocar o método da consulta aqui:

public MovimentacaoProtocoloEntrada ultimaMovimentacaoRecebida(int codigoProtocoloEntrada){ //verifica se a ultima movimentacao já foi recebida.
        String hql = "select m.codigo as codigo from MovimentacaoProtocoloEntrada m where m.protocoloEntrada = :codigoProtocoloEntrada order by m.codigo desc";
        Query consulta = this.session.createQuery(hql);
        consulta.setMaxResults(1);
        consulta.setInteger("codigoProtocoloEntrada", codigoProtocoloEntrada);
        return (MovimentacaoProtocoloEntrada) consulta.uniqueResult();
    }

O que estou fazendo de errado ?

Muito obrigado :)

  • Tente utilizar o MAX na query para ver se funciona.

    lucastody   04 de fev de 2015
  • Estou utilizando HQL, e não SQL, até onde eu sei, HQL não tem o comando MAX, estou certo ?

    Agr0   04 de fev de 2015
  • Você está certo, HQL tem o comando Max, resolvido, muito obrigado pela ajuda !

    Agr0   04 de fev de 2015
  • Porque não ativa no seu hibernate.cfg ou propeties para ele logar o sql executado assim voc~e consegue executar a sql direto no banco e ver o porque está trazendo mais de um registro.

    fabio rene Mussi   04 de fev de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java hibernate web ou faça a sua própria pergunta.