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 Il n'y a pas de moyen de simplement obtenir la chaîne de requête à partir de javax.persistence.Query code> objet?
La requête code> code> 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 Code> Classe). P>
javax.persistence.Query code> objet (à nouveau dans un programme Java) ?! P>
4 Réponses :
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();
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 @"
Il n'y a pas de moyen standard en JPA, P>
Si vous utilisez Eclipselink, voir P>
http://wiki.eclipse.org/eclipselink/faq/jpa# How_to_get_the_sql_for_a_query.3f p>
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"/>
pas de problème. hibernate: ou eclipselink p> ou ouvert JPA P> requête.unwrap (jpaquery.class) .getDatabaseQuery (). getjpqlstring (); // ne fonctionne pas pour la critèrequery
requête.unwrap (jpaquery.class) .getdatabasequery (). getqlstring (); code> p>