Criação JPQL

5 respostas Resolvido
javaphp
Bastos

Preciso fazer uma JPQL que retorne dados de uma tabela que se relaciona com ela mesma:

Preciso retornar o nome do pai, nome do filho e qtd, de netos.

Valeu!

5 Respostas

igomes

e o que vc já fez ?

Bastos

Olá igomes!

Por enquanto estou fazendo com sql, veja:

SELECT p.nome as pai, f.id as id_filho, f.nome as filho, ( SELECT COUNT(n.id) FROM local n INNER JOIN local a ON a.id = n.pai WHERE a.id = 4 ) as netos FROM local p INNER JOIN local f ON p.id = f.pai WHERE p.id = 1

Bastos

E aí galera, nada?

pmlm
Solucao aceita

Queres todos os registo ou apenas os que têm filhos? Se queres todos nao podes usar inner join. Não sei se é bem isto que queres, mas segue um exemplo em SQL para te ajudar:

SELECT p.nome, f.nome, (select count (*) from t_local n where n.pai = f.id) cnt
  FROM t_local p 
  LEFT JOIN t_local f ON (p.id = f.pai)

Ou, orientado ao “filho”:

SELECT p.nome, f.nome, (select count (*) from t_local n where n.pai = f.id) cnt
  FROM t_local f 
  LEFT JOIN t_local p ON (p.id = f.pai)
Bastos

Olá pmlm!

Sua resposta foi perfeita, é exatamente o que preciso.

Muito obrigado! :smiley:

Criado 16 de março de 2016
Ultima resposta 17 de mar. de 2016
Respostas 5
Participantes 3