Maison >base de données >tutoriel mysql >Comment sélectionner des colonnes spécifiques dans les requêtes de critères Hibernate ?

Comment sélectionner des colonnes spécifiques dans les requêtes de critères Hibernate ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 08:29:30809parcourir

How Do I Select Specific Columns in Hibernate Criteria Queries?

Requête de critères Hibernate : sélection de colonnes spécifiques

Dans la requête de critères Hibernate, le comportement par défaut consiste à récupérer toutes les colonnes de la table spécifiée. Cependant, il est possible d'exclure certaines colonnes des résultats de la requête pour des optimisations de performances.

Projections pour la sélection de colonnes

Pour exclure une colonne des résultats de la requête, les projections peuvent être utilisé. Les projections vous permettent de spécifier une liste de propriétés qui doivent être renvoyées. En répertoriant explicitement les propriétés souhaitées, les colonnes restantes seront exclues.

Exemple de requête de critères

Considérez la requête SQL suivante :

<code class="sql">SELECT user.id, user.name FROM user;</code>

Pour obtenir le même résultat en utilisant Hibernate Criteria Query, on peut utiliser le code suivant :

<code class="java">CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery<Tuple> cq = cb.createTupleQuery();
Root<User> root = cq.from(User.class);
cq.multiselect(root.get("id"), root.get("name"));</code>

Dans cet exemple, cb, cq et root sont des objets constructeur qui facilitent la construction de requêtes. La méthode multiselect() est utilisée pour spécifier les colonnes à renvoyer.

Gestion des projections en HQL

L'équivalent HQL de la requête de critères ci-dessus serait le suivant :

<code class="hql">SELECT id, name FROM User</code>

En utilisant des projections, il est possible d'optimiser les requêtes et de réduire la quantité de données récupérées de la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn