Я читал несколько анверов, но я все еще смущен. Зачем? потому что различия, которые вы упомянули, не связаны с производительностью. они связаны с легким использованием. (Objetc (критерии) и SQL (hql)). Но я хотел бы знать, почему «критерии» медленнее hql по какой-то причине.Hibernate Criteria vs HQL: что быстрее?
Я прочитал это в другой anwers
«Существует разница с точки зрения производительности между HQL и criteriaQuery, каждый раз вы огонь запрос, используя criteriaQuery, он создает новый псевдоним для имени таблицы, которая не отражает в последний запрошенный кеш для любого БД. Это приводит к накладным расходам на сбор сгенерированного SQL, что требует больше времени для выполнения ». Варуном Мехтой.
Это очень близко НО! я читаю на другом веб-сайте (http://gary-rowe.com/agilestack/tag/hibernate/) Это больше не относится к Hibernate 3.3 и выше (пожалуйста, прочтите следующее: 9) Спящий режим медленный, потому что SQL, сгенерированный Интерфейс критериев не согласован)
Я проделал некоторый тест, пытаясь выяснить различия, но оба генерируют qry, и это не изменяет псевдоним на таблицу.
Я очень смущен. Если кто-то знает основную причину, пожалуйста, не могли бы вы нам помочь. Спасибо
Критерии могут выполнять большинство типов соединений, которые может выполнять HQL, хотя иногда это немного неудобно или трудно понять (по крайней мере, на мой взгляд). Абсолютно верно о том, что HQL легче читать! – 2011-01-22 21:00:32
BTW, я бы проголосовал за ваш ответ ... но вы не ответили на вопрос kcobuntu. – 2011-01-22 21:01:54
Если вы собираетесь копировать чужой ответ, вы должны хотя бы упомянуть об этом. Ссылка на исходный ответ: http://stackoverflow.com/a/197496/980103 – 2014-03-05 12:26:49