Bonjour,
Est-il possible de spécifier au niveau de l'instance ICriteria de ne récupérer que les éléments distincts ?
Ou encore de faire l'equivalent de select distinct ??
Merci d'avance,
Mow
Bonjour,
Est-il possible de spécifier au niveau de l'instance ICriteria de ne récupérer que les éléments distincts ?
Ou encore de faire l'equivalent de select distinct ??
Merci d'avance,
Mow
Exactement comme un DISTINCT en SQL, pas faisable actuellement semble-t-il.
.SetResultTransformer(NHibernate.CriteriaUtil.DistinctRootEntity) s'en approche, mais c'est pas tout à fait la même chose (le filtrage ne se fait pas dans la base)
Sinon il faut passer par du HQL.
Be wary of strong drink.
It can make you shoot at tax collectors, and miss.
Merci pour la réponse.
Je me permets de continuer avec une autre question (pour une fois que je tombe sur quelqu'un qui connait/utilise les ICriteria).
Apparemment sur les ICriterion tels que AddOrder, on ne peut ordonner que des proprietes de notre entity. Me le confirmes-tu ?
Sinon, pour info j'utilise du HQL dans d'autres cas.
Ca m'embête pas que je puisse pas utiliser dans tous les cas les requetes du genre ICriteria je trouvais ca trop intéressant... Pour l'ensemble des formulaires de recherches de l'application je passais par un même template ; les paramètres étaient l'entity, jointure et filtre.
Je suis intéressé aussi par des tutoriaux sur le mode d'interrogation sur NHIbernate (autre que ceux du site bien sûr !!
D'avance et encore merci,
Mow
Ni l'un ni l'autre :)Envoyé par mow
J'ai survolé, mais je tourne essentiellement au HQL (plus facile pour les tests :)
Le coup du DistinctRootEntity ça vient de http://forum.hibernate.org/ :)
Confirmer non (pas trop creusé ça donc), mais ça semblerait logique. Sur quoi d'autre est-ce que tu voudrais pouvoir trier ? Toute la requête est faite à partir des propriétés des objets après tout.Envoyé par mow
À part http://www.hibernate.org/365.html je suis à sec :)Envoyé par mow
Be wary of strong drink.
It can make you shoot at tax collectors, and miss.
Merci pour tes réponses et tes liens...
Oui, on ne peut trier que sur les propriétés des objets mais ils arrivent que ces propriétés représentent eux-même des objets et ces objets eux aussi ont des propriétés. Et ce sont ces propriétés que je désire atteindre.Confirmer non (pas trop creusé ça donc), mais ça semblerait logique. Sur quoi d'autre est-ce que tu voudrais pouvoir trier ? Toute la requête est faite à partir des propriétés des objets après tout.
Merci,Mow
Bonjour je me permets de poster ma question ici, car elle a aussi un rapport avec Nhibernate et ICriteria
J'ai 2 tables :
THEME (IDTHEME, LIBELLETHEME)
OBJECTIF (IDOBJECTIF, LIBELLEOBJECTIF,IDTHEME)
Dans la table OBJECTIF j'ai un IDTHEME (un objectif se rapporte toujours à un thème)
Je veux créer une liste des objectifs, triés pas le libelle de leurs thèmes.
J'aiirive a trier ma liste par le libellé de l'objectif. Mon mapping marche dans ce cas.
Dans ma classe Objectif, j'ai des propriétés suivantes:
ça marche ==>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public class Objectif { private int _idObjectif; private string _libelleObjectif; private Theme _theme; public Objectif() { } public virtual int IdObjectif { get { return _idObjectif; } set { _idObjectif = value; } } public virtual string LibelleObjectif { get { return _libelleObjectif; } set { _libelleObjectif = value; } } public virtual Theme Theme { get { return _theme; } set { _theme = value; } } public virtual string LibTheme { get { return _theme.LibelleTheme; } set { _theme.LibelleTheme = value; } } }
ça marche pas ==>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ICriteria criteres = session.CreateCriteria(typeof(Objectif)); criteres.AddOrder(Order.Asc("LibelleObjectif"));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 criteres.AddOrder(Order.Asc("Theme.LibelleTheme")); criteres.AddOrder(Order.Asc("LibTheme"));
si j'ecris ==>
ca trie, mais par ll IDTHEME, mais moi je veux par libelleTheme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 criteres.AddOrder(Order.Asc("Theme"));
HS : vive linq
bon, j'ai trouvé moi meme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ICriteria criteres = session.CreateCriteria(typeof(Objectif)); ICriteria critTheme = criteres.CreateCriteria("Theme"); critTheme.AddOrder(Order.Asc("LibelleTheme"));
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager