Prezados,
estou com uma dúvida referente a HQL do hibernate.
Estou tentando fazer uma consulta razoavelmente simples.
Possuo minhas classes mapeadas e tudo configurado normalmente.
Minha consulta consiste um select com um inner join de duas tabelas onde as mesmas não possuem referências de uma para outra.
Exemplo:
[code]Classe Casa {
int codigoCasa;
String endereco;
int numero;
}[/code]
[code]Classe Pessoa {
int codigoPessoa;
String nome;
String endereco;
Date dtNascimento;
}[/code]
Levando em consideração que as classes estão mapeadas corretamente, executei o seguinte HQL:
Select p.codigoPessoa, p.nome, c.codigoCasa, c.numero
from Casa c
inner join
Pessoa p
where c.endereco = p.endereco
Retornou o seguinte erro: javax.servlet.ServletException: Path expected for join!
Tentei executar consulta abaixo, mas nem faz sentido, gerando o erro que eu já imaginava: "javax.servlet.ServletException: could not resolve property: ", pois não existem referências entre uma classe e outra:
Select p.codigoPessoa, p.nome, p.endereco, c.codigoCasa, c.numero
from Casa c
inner join
m.pessoa p
where c.endereco = p.endereco
Ao executar a Query
Select p.codigoPessoa, p.nome, p.endereco, c.codigoCasa, c.numero
from Casa c, Pessoa p
where c.endereco = p.endereco
no “Query query = sessao.createQuery()” passando a consulta a cima foi executado com sucesso, porém, na instrução: query.list() uma lista é retornada, mas impossível e pegar os atributos, pois eles não possuem nomes, somente o valor conforme estrutura do “ctrl+shift+i do eclipse” abaixo:
"query.list()" = ArrayList<E> (id=203)
elementData = Object[5] (id=205)
[0]=Object[4] (id=207)
[0] int (id=207)
[1] "Paulo" (id=207)
[2] int (id=217)
[3] int (id=218)
[1]=Object[4] (id=220)
[2]=Object[4] (id=222)
[3]=Object[4] (id=224)
[4]=Object[4] (id=226)
Na parte “int (id=###)” quando seleciono no ctrl+shift+i, aparece o valor correto do select
Não postei a minha classe real pois elas são grandes, criei essas duas agora, mas elas já expressam a minha dúvida.
Obrigado
