Recuperar Query Nativa SQL (JPA)

Pessoal, gostaria de saber se tem como eu recuperar a query sql nativa gerada de uma query JPQL (do toplink por exemplo).

A utilização seria informar a query no erro para facilitar o suporte da aplicação.

Gostaria de saber até se é uma boa abordagem.

Valeu.

Na configuração do Hibernate você pode habilitar o recurso abaixo e depois recuperar o SQL gerado através do console do Eclipse.

<property name="showSql" value="true" /> 

No TopLink precisaria dar uma pesquisada pra saber qual é o recurso equivalente.

[quote=thiagotn]Na configuração do Hibernate você pode habilitar o recurso abaixo e depois recuperar o SQL gerado através do console do Eclipse.

<property name="showSql" value="true" /> 

No TopLink precisaria dar uma pesquisada pra saber qual é o recurso equivalente.
[/quote]

Eae Thiago.

Então, eu preciso recuperar o SQL gerado dentro da minha aplicação mesmo, para apresentá-la ao usuário.

Vlw

Ninguém? =/

Beleza cara?
Você precisa pra gravar o log em uma base ou coisa do tipo?
Se for a unica coisa que que sei que dá é quando você capturar a excessão, pega o a mensagem da exception e faça um parse por [], o que estiver dentro do [] é a query sql que o jpa pegou.
É a unica forma, não existe um métoto no entity manager que te retorne a sql query, pois a mesma é gerada dinamicamente.

Falou.

[quote=samurai]Beleza cara?
Você precisa pra gravar o log em uma base ou coisa do tipo?
Se for a unica coisa que que sei que dá é quando você capturar a excessão, pega o a mensagem da exception e faça um parse por [], o que estiver dentro do [] é a query sql que o jpa pegou.
É a unica forma, não existe um métoto no entity manager que te retorne a sql query, pois a mesma é gerada dinamicamente.

Falou.[/quote]

Ow kra, faz tempo que precisei disso ma não achei nada.

Acho que o jeito que vc falou eh o unico jeito mesmo.

Vlww brow.

Abraço.

Opa,
É realmente só agora eu vi a data do post :oops:

Mas aproveitando quem sabe você pode me ajudar: Quando uso uma query sql nativa no jpa, no retorno do select tenho 2 atributos com o mesmo nome porem em tabelas direfentes, mesmo colocando um alias quando o jpa retorna o resultado, vel o valor do atribudo repetido, por exemplo

Select pessoa.name, empresa.name from Empresa emp inner join Pessoa pes on pes.empresa_id=empresa.id

Esse select se executado no sgbd funciona e retorna corretamente, porem quando o jpa executa, vem a quantidade de linhas corretas, o pessoa.name vem correto porém no empresa.name o nome da pessoa se repete.
Já tentei usar alias pros retornos tipo:

Select pessoa.name NOME_PESSOA, empresa.name NOME_EMPRESA from Empresa emp inner join Pessoa pes on pes.empresa_id=empresa.id

mas não resolve.
Já passou por isso?