BrenoBex:
Primeiramente muito obrigado por me responder…
Mas então, tentei fazer o que você falou e deu o JavaNullPointerException. Na verdade não entendi direito o conceito de usar o inner join.
o atributo “estabelecimento” da tabela TRANSACAO faz referência ao atributo Id da tabela ESTABELECIMENTO. Mas o que eu quero mostrar na tela é o campo Nome e não o ID. O inner Join funcionaria nesse caso?? Ele não serve pra mostraros campos de uma tabela mesmo que não tenha os iguais da outra (ou algo assim) ?? Vou pesquisar melhor.
Eu não cheguei a comentar, mas quando eu tentei fazer aquela minha consulta original, apareceu o seguinte erro:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to models.Transacao
não tenho certeza, mas acho que o campo nome do Estabelecimento está vindo como objeto e por isso ele não consegue atribuir na variavel String da tabela Transacao.
Desculpe a ignorância mas sou bem novato com HQL e projetos Web, fico meio perdido às vezes.
“o atributo “estabelecimento” da tabela TRANSACAO faz referência ao atributo Id da tabela ESTABELECIMENTO”
então… achoq ue você não entendeu, não você não vai usar o nome da coluna no seu banco de dados, mas sim o nome do atributro na sua classe de entidade que esta mapeando essa tabela… é o atributo do tipo da classe Estabelecimento dentro da sua classe Transacao… e isso funciona sim, do jeito que você deixou, vai vir um Object[] para cada linha do retorno da query, sendo que cada item do array seria um item que você colocar na clausula select do seu hql (se você colocasse select tr from Transacao tr inner join fetch tr.estabelecimento where… retornaria o objeto da transação com o objeto Estabelecimento prenchido em cada linha do retorno… normalmente é mais facil de usar…).
como eu falei, estude os joins…
e sim, da para fazer com criteria sim, mas eu honestamente acho mais dificil… ^^