2009-07-22 10 views
1

Existe-t-il un moyen d'utiliser des expressions dans la clause Select?NHibernate HQL Query: Expressions dans la clause Select

Par exemple:

sélectionnez u.Age/2 de l'utilisateur u

Je vais avoir cette exception en ce moment:

NHibernate.QueryException: '' attendu SELECT avant:/[sélectionnez u.Age/2 de Business.Entities.User u]

Répondre

0

Oui, vous pouvez le faire. Le résultat de la requête sera une liste d'objets [], où chaque élément du tableau est le résultat du calcul de la colonne. Dans votre exemple, si la table comportait 10 lignes, vous obtiendriez une liste de 10 éléments, chacun avec un seul élément Object [] contenant la valeur age/2.

Je lierais à la partie des docs Hibernate qui décrivent ce comportement (il a un nom spécial, je ne me souviens pas de quoi il s'agit), mais hibernate.org semble être à nouveau bas.

+0

Hmm .. Je ne suis pas en mesure d'exécuter cette requête simple, mais en fait j'utilise NHibernate, cela est peut-être le problème? I ayant cette exception: NHibernate.QueryException: '' attendu SELECT avant:/[select u.Age/2 de Business.Entities.User u] –

+0

ah bien ... Hibernate = NHibernate! ..... – skaffman

2

Vous voulez juste obtenir le résultat de u.Age divisé par deux? Vous pouvez utiliser HQL mais je trouve qu'il est plus facile de changer l'attribut de la formule dans le fichier de mappage.

-à-dire:

<property name="HalfAge" formula="Age/2" /> 
+0

Merci pour la réponse, c'était juste un exemple, mais je l'aurai à l'esprit –

+0

Souciez-vous d'accepter cela comme une réponse alors? :] –

Questions connexes