Dúvida com NamedQuery

Pessoal,

abaixo vocês podem observar a minha NamedQuery atual e que funciona perfeitamente:

@NamedQuery(name = "Products.findAll", query = "SELECT p FROM Products p"),

mas eu gostaria que ela realizasse a seguinte instrução:

SELECT pa.group_id, pa.parent, pa.product_id, p.product_number, pa.rank
FROM products p,
(SELECT pg.product_id, group_id, p.product_number Parent, LEVEL as rank
FROM product_groups pg, products p
WHERE p.product_id = pg.group_id
and business = 'KMAP'
CONNECT BY PRIOR pg.product_id = group_id) pa
WHERE p.product_id = pa.product_id

Como eu poderia definir isso na minha NamedQuery?

Valeu!

Posso estar falando besteira mas, esse CONNECT BY PRIOR é exclusivo do Oracle, e muito doido por sinal, é ele que usa recursividade, certo ?

Então, eu acho melhor você executar esta Query com o método executeNativeQuery ou algo do tipo. Você pode também refatorar a Query e construi-lá com a API de Critéria que no JPA ainda não está legal, mas é melhor que NamedQuery, com a refatoração a parte da recursão ficaria na aplicação.

Abraços!

Ah legal, eu li algo já sobre query nativa, vou ver se consigo aplicar, senão, posto aqui as dúvidas, valeu!

Vi alguns exemplos mas não consegui utilizar o createnativequery, deu alguns erros?

Baseado na minha classe conseguiria me dar uma luz?

obrigado.

Query q = em.createNativeQuery(....);