8
votes

Comment obtenir une chaîne de requête d'un javax.persistence.Query?

Peut-être que je manque quelque chose, mais je veux simplement (dans mon programme Java) obtenir la chaîne de requête à partir d'un javax.persistence.Query objet? La requête L'objet lui-même ne semble pas avoir une méthode pour faire cela. De plus, je sais que notre responsable ne veut pas que nous utilisions des trucs de structure de printemps (par exemple en utilisant leur QueryUtils Classe).

Il n'y a pas de moyen de simplement obtenir la chaîne de requête à partir de javax.persistence.Query objet (à nouveau dans un programme Java) ?!


0 commentaires

4 Réponses :


0
votes

Il n'y a pas de manière standard JPA, mais certaines implémentations ont leurs propres méthodes. Par exemple Datanuctue JPA vous permet de faire

query.toString();


1 commentaires

Cela ne renvoie pas la valeur de la chaîne de requête mais traduit l'objet à une chaîne. Exemple "org.hibernate.jpa.internal.queryimpl @"



1
votes

Il n'y a pas de moyen standard en JPA,

Si vous utilisez Eclipselink, voir

http://wiki.eclipse.org/eclipselink/faq/jpa# How_to_get_the_sql_for_a_query.3f


0 commentaires

0
votes

Modifiez votre fichier de propriétés de persistance si JPA est fournie par Hibernate. Ajouter la section ci-dessous -

<property name="hibernate.show_sql" value="true"/>


0 commentaires

3
votes

pas de problème. hibernate: xxx

ou eclipselink

requête.unwrap (jpaquery.class) .getDatabaseQuery (). getjpqlstring (); // ne fonctionne pas pour la critèrequery requête.unwrap (jpaquery.class) .getdatabasequery (). getqlstring ();

ou ouvert JPA xxx ... vous Obtenez l'idée ....


0 commentaires