2009-12-16 6 views
0

J'essaie d'effectuer une requête hql qui renvoie une liste d'objets avec une valeur de propriété distincte. Voici mon pseudo code:hql obtenir des objets où certaine propriété est unique

string hql = @"select distinct m from Merchandise m 
       where m.Serial is unique" 

J'utilise Castle ActiveRecord en plus de NHibernate. J'ai passé une demi-journée sur ce problème mais je n'ai pas trouvé la bonne syntaxe HQL pour le faire. Quelqu'un peut-il me dire quoi faire?

Répondre

2

Quelque chose comme ça devrait faire l'affaire:

string hql = @" 
    from Merchandise m 
    where not exists (
      from Merchandise other 
      where m.Serial = other.Serial 
      and m.Id <> other.Id 
      )"; 

Cela suppose l'identification des marchandises est juste une propriété appelée Id.

Questions connexes