hibernate comment faire pour afficher les critères de requêtes
Je pense que c'est une simple question, bien que je ne sais pas comment le résoudre.
Dans un spring/Hibernate application, j'ai besoin d'afficher la requête que l'un des critères de l'exécuter.
Je sais que je peux utiliser show_sql propriété et le journal des requêtes à l'aide de log4j ou de toute autre structure de journalisation, mais ce que j'ai besoin c'est d'un niveau plus élevé de l'exploitation forestière.
J'ai une méthode comme ceci
public void searchIntegrationClient(IntegrationClientSearchCommand integrationClientSearchCommand,PartialList<IntegrationClient> partialList) {
Session session = getSession();
Criteria pageCriteria=session.createCriteria(IntegrationClient.class);
if(StringUtil.isNotEmpty(integrationClientSearchCommand.getNameCmd())){
pageCriteria.add(Restrictions.like("name", integrationClientSearchCommand.getNameCmd(), MatchMode.START));
}
//adding ordering alphabetically
pageCriteria.addOrder(Order.asc("name"));
pageCriteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List<IntegrationClient> list = (List<IntegrationClient>)pageCriteria.list();
partialList.setPartialResultList(list);
Criteria countCriteria=session.createCriteria(IntegrationClient.class);
if(StringUtil.isNotEmpty(integrationClientSearchCommand.getNameCmd())){
countCriteria.add(Restrictions.like("name", integrationClientSearchCommand.getNameCmd(), MatchMode.START));
}
countCriteria.setProjection(Projections.rowCount());
partialList.setTotalNumberOfRecords(((Integer)countCriteria.uniqueResult()).intValue());
releaseSession(session);
}
J'ai besoin avant exécute les critères.liste pour afficher la requête qui sera exécutée?
Est-il un utilitaire de classe dans les critères de l'api pour afficher la requête comme ce que je veux ?
Thnx à l'avance
OriginalL'auteur Fanooos | 2011-01-10
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas, l'utilitaire de classe dans l'APC, les Critères de l'API. Mais il y a la possibilité de présenter les instructions SQL sur la persistance hibernate.
Ajoutez la ligne suivante à votre persistence.xml fichier:
Si vous utilisez log4j vous pouvez également définir le niveau de journalisation de org.mise en veille prolongée.type à TRACE, qui va vous montrer encore plus d'informations détaillées dans vos journaux. Ajoutez ces lignes à votre log4j-config (vous devez disposer d'une carte appelée "FICHIER", bien sûr):
J'espère que cela aide...
OriginalL'auteur fgysin