Використовувати чи ні Criteria?
Як вже було сказано в зауваженні вище - в такому вигляді як в цій статті, небажано. Необхідно використовувати стандарт JPA. Проте коду, що використовує цей підхід дуже багато і він ще довго буде підтримуватися.
Також слід врахувати, що ви не маєте ніякого контролю над запитом, що генерується Hibernate. Відповідно якщо важлива продуктивність, то можливо варто розглянути інший підхід.
Ще одним мінусом є сам текст запиту - в разі помилки буде складно відловлювати який із запитів написаний невірно. У разі іменованих запитів все буде замапіно на об'єкти Java і побачити виняток набагато простіше.
Висновок: використовувати чи ні Criteria потрібно приймати виходячи з потреб проекту.
Посилання для скачування
hibernateCriteria - sql дамп для MySQL разом з таблицями і даними
5206 Total Views 1 Views Today
Зверніть увагу, що Expression - вже @Deprecated. Але, що більш важливо в версії Hibernate, яка використовується в цій статті і Restrictions теж йде в минуле. Jboss.org вказує, що org.hibernate.Criteria API має вважатися застарілим, а замість цього необхідно використовувати специфікацію JPA і javax.persistence.criteria.CriteriaQuery. JPA буде описуватися в окремій статті