JPA com Java 7

Boa tarde a todos.

Tenho o seguinte SQL:

@Override
public List<Base> findAllAits(Long orgaoId, int qtdeAnos, int max) {
  JPQLBuilderHelper jpqlBuilder = new JPQLBuilderHelper();
  jpqlBuilder.appendSelect(" DISTINCT b ");
  jpqlBuilder.appendFrom(" Base b ");
  jpqlBuilder.appendFrom(" INNER JOIN b.orgao org ");
  jpqlBuilder.appendFrom(" INNER JOIN b.veiculo vei ");
  jpqlBuilder.appendFrom(" INNER JOIN vei.modelo mod ");
  jpqlBuilder.appendFrom(" INNER JOIN vei.especie esp ");
  jpqlBuilder.appendFrom(" INNER JOIN vei.cor cor ");
  jpqlBuilder.appendFrom(" INNER JOIN vei.categoria cat ");
  jpqlBuilder.appendFrom(" LEFT JOIN b.pontuados pon ");
  jpqlBuilder.appendFrom(" LEFT JOIN b.migracao migr ");
  jpqlBuilder.appendOrder" org.id, b.descricao, b.valor, b.status ");

Preciso incluir um campo id de uma tabela chamada órgao no Select.
Fiz assim:

jpqlBuilder.appendSelect(" DISTINCT b, org.id ");
jpqlBuilder.appendFrom(" Base b ");

Não deu certo.

Alguém saberia me dizer como eu faço isso?

Preciso dessa alteração porque ainda que a tabela Base tenha relacionamento com orgao estou
tomando um erro: ‘not a SELECTED expression’ por causa do Order By

Que classe está subindo esse erro? É essa JPQLBuilderHelper? Pq não parece um erro de SQL mal formado ou algo do tipo.

Aliás, pq usar esse helper? Aparentemente ele não agrega muito mais do que usar um simples StringBuilder.

Na verdade eu dou manutenção então não mudo muita coisa.

A classe é org.hibernate,exception.SQLGrammarException

O erro leva para a classe InvocationTargetException

Posta a stacktrace completa do erro pra gente ver.

image

Printa o SQL gerado no console, pega ele e executa direto no banco e valida se a sintaxe dele está correta ou não!

Faça o que o @Jonathan_Medeiros comentou e veja se o SQL gerado funciona.

Quando for mandar código, stacktraces, etc. Evite ao máximo enviar imagens. Sempre copie e cole o texto aqui. Fica muito mais fácil de ver.

De qualquer forma, o problema, acho, é que pq os campos especificados no ORDER BY não estão declarados de forma explícita na cláusula SELECT.

Bom dia Lucas.
Eu havia constatado isso também olhando no Google.
Mas eu não consigo incluir o campo que falta no SELECT, não rola e dá erro.
O erro: org.hibernate,exception.SQLGrammarException e cai na classe InvocationTargetException

A sintaxe que faço:

jpqlBuilder.appendSelect(" DISTINCT b, org.id “);
jpqlBuilder.appendFrom(” Base b “);
jpqlBuilder.appendFrom(” INNER JOIN b.orgao org ");