web-dev-qa-db-fra.com

Pourquoi la requête de critères est-elle déconseillée dans Hibernate 5?

Comme nous le savons déjà, la requête de critère est déconseillée dans Hibernate 5 . C'était une fonctionnalité très utile dans les versions précédentes d'Hibernate. Et il fonctionne toujours mieux que HQL.

Alors, quelle est la raison de sa dépréciation dans Hibernate 5 ?

Et aussi cette question n'est pas un doublon de cette question car je veux connaître la raison de la dépréciation de la requête de critères.

Cela vient de ici.

Hibernate propose une ancienne version org.hibernate.Criteria API qui doit être considérée comme obsolète. Aucun développement de fonctionnalités ne ciblera ces API. À terme, les fonctionnalités de critères spécifiques à Hibernate seront portées en tant qu'extensions au JPA javax.persistence.criteria.CriteriaQuery. Pour plus de détails sur le org.hibernate.Criteria API, voir Requêtes de critères d'hibernation héritées.

25
Pritam Banerjee

Nous déconseillons l'API Criteria au lieu du support d'extension JPA.

Considère ceci:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
HibernateCriteria hc = cb.unwrap( HibernateCriteria.class );
...
query.where( hc.someAwesomeThing( ... ) );
List<SomeEntity> entities = entityManager.createQuery( query ).getResultList();

Contrairement aux commentaires, nous faisons avons l'intention de continuer à fournir des fonctionnalités spécifiques à Hibernate, mais nous voulons les introduire via l'API standard plutôt que d'essayer de gérer en gardant deux API très différentes qui sont censées être complémentaires. en synchronisation.

12
Naros