überwintern wie die Kriterien Abfragen
Ich denke, das ist eine einfache Frage, obwohl ich nicht weiß, wie es zu lösen.
In einem spring/Hibernate-Anwendung, die ich brauche, um zu zeigen, die Abfrage, die ein Kriterium ausführen.
Ich weiß, dass ich verwenden können, show_sql Eigentum und protokollieren der Abfragen mit Hilfe von log4j oder andere logging-framework, sondern was ich brauche, ist eine höhere Stufe der Protokollierung.
Habe ich eine Methode wie diese
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);
}
Muss ich vor führt die Kriterien.Liste zeigen, die die Abfrage ausgeführt wird?
Gibt es eine utility-Klasse in der Kriterien-api zum anzeigen der Abfrage, wie das, was ich will ?
Thnx im Voraus
InformationsquelleAutor Fanooos | 2011-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nichts über irgendwelche utility-Klasse, die in der JPA Criteria-API. Aber es gibt die Möglichkeit, zu zeigen, die SQL-Anweisungen auf der hibernate-Persistenzschicht.
Fügen Sie die folgende Zeile zu Ihrer persistence.xml Datei:
Wenn Sie mit log4j können Sie auch den logging level von org.hibernate.geben Sie zu TRACE, die zeigen Sie noch mehr ausführliche Informationen in Ihren Protokollen. Fügen Sie diese Zeilen in der log4j-Konfiguration (Sie benötigen einen adapter namens 'FILE'):
Ich hoffe das hilft...
InformationsquelleAutor fgysin