Ich habe ein paar Antworten gelesen, aber ich bin immer noch verwirrt. Warum? weil die Unterschiede, die Sie erwähnt haben, sich nicht auf die Leistung beziehen. Sie sind mit der einfachen Verwendung verbunden (Objetc (Kriterien) und SQL (hql)). Aber ich würde gerne wissen, ob "Kriterien" aus irgendeinem Grund langsamer als hql ist.Hibernate-Kriterien vs HQL: Was ist schneller?
ich das las in einem anderen Anwers
„Es gibt einen Unterschied in Bezug auf die Leistung zwischen HQL ist und criteriaQuery, jedes Mal wenn Sie eine Abfrage mit criteriaQuery Feuer, erstellt es einen neuen Alias für den Tabellennamen, die nicht in widerspiegelt der letzte abgefragte Cache für einen beliebigen DB. Dies führt zu einem Mehraufwand beim Kompilieren des generierten SQL, wodurch mehr Zeit für die Ausführung benötigt wird. " von Varun Mehta.
Dies ist sehr nahe, aber! Ich lese auf einer anderen Website (http://gary-rowe.com/agilestack/tag/hibernate/) Dies ist nicht mehr der Fall mit Hibernate 3.3 und höher (bitte lesen Sie: 9) Hibernate ist langsam, weil die von der Kriterienschnittstelle ist nicht konsistent)
Ich habe einen Test durchgeführt, der versucht, die Unterschiede herauszufinden, aber beide erzeugen qry's und ändern den Alias nicht in die Tabelle.
Ich bin sehr verwirrt. Wenn jemand den Hauptgrund kennt, könnten Sie uns bitte helfen. Danke
Kriterien können die meisten Join-Typen verwenden, die HQL ausführen kann, obwohl es manchmal etwas peinlich oder schwer zu verstehen ist (zumindest meiner Meinung nach). Absolut richtig, dass HQL einfacher zu lesen ist! –
Übrigens, ich würde für deine Antwort stimmen ... aber du hast kcobuntis Frage nicht wirklich beantwortet. –
Wenn Sie die Antwort einer anderen Person kopieren, sollten Sie sie zumindest erwähnen. Link zur ursprünglichen Antwort: http://StackOverflow.com/A/197496/980103 –