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

JPA + Postgresql - Problema com ORDER BY

Boa tarde pessoal,

Estou utilizando JPA para realizar acesso a um BD PostgreSQL. E tenho consultas nesta forma

SELECT DISTINCT funcionario_ FROM Funcionario funcionario_ ORDER BY funcionario_.servidor.nome

Só para esclarecer tenho uma classe Funcionario que possui uma instância da classe servidor dentro de si, a qual está marcada fetch eager.

Enquanto estava testando, utilizando o MySql, este tipo de consulta funcionava bem, mas agora no PostgreSql dá este erro:

org.postgresql.util.PSQLException: ERRO: para SELECT DISTINCT, expressões ORDER BY devem aparecer na lista de seleção

Se mudar a named query para:

SELECT DISTINCT funcionario_, funcionario_.servidor.nome FROM Funcionario funcionario_ ORDER BY funcionario_.servidor.nome

Eu resolvo o problema o problema anterior, mas recebo este outro de brinde:

java.lang.IllegalArgumentException: Cannot create TypedQuery for query with more than one return

Alguém sabe como resolver isto?

Grato por qualquer ajuda.

  • Já tentou DISTINCT funcionario_.servidor.nome FROM Funcionario funcionario_ ORDER BY funcionario_.servidor.nome ?

    Marcus Becker   06 de abr de 2015
  • Dá erro de cast porque retorna só uma String e não uma instância de Funcionário

    Jubarius   06 de abr de 2015
  • Consegui resolver, foi só remover o "Distinct". Pelo que li aquela query funcionava no MySql somente porque ele não segue totalmente os padrões.

    Jubarius   06 de abr de 2015
  • Se você quiser que não venha dados repetidos pode usar o Group by.

    helenice_as   14 de abr 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!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jpa sql banco-de-dados ou faça a sua própria pergunta.