J'utilise NHibernate pour interroger ma base de données avec l'API de critères. Mes critères est ci-dessous:Projections NHibernate et clause "Having"
ICriteria c = Session.CreateCriteria(typeof(Transaction));
ProjectionList projections = Projections.ProjectionList();
projections.Add(Projections.Sum("Units"), "Units");
projections.Add(Projections.GroupProperty("Account"), "Account");
projections.Add(Projections.GroupProperty("Security"), "Security");
c.SetProjection(projections);
Cela fonctionne très bien, mais ce que je voudrais est un moyen d'être en mesure de limiter la requête à ne revenir lorsque la propriété « Unités » est> 0. Dans SQL Je voudrais simplement nous une clause Having Units > 0
mais je n'ai pas réussi à trouver un moyen de le faire dans NHibernate. Est-ce que quelqu'un a des idées ou est ma seule option pour utiliser HQL?
Malheureusement, cela ne fonctionne pas tout à fait comme je le voulais. La restriction est appliquée dans la clause WHERE plutôt que dans une clause having. Le résultat final étant que chaque ligne individuelle est restreinte plutôt que la somme de toutes les lignes. – lomaxx
Bizarre, je pourrais jurer d'avoir déjà utilisé ça et ça a marché. Malheureusement, la meilleure documentation que je puisse trouver pour cela est la soumission de patch: http://nhjira.koah.net/browse/NH-1280. –
merci pour l'info ... on dirait que nous devrons attendre 2.1.0 avant que cela ne soit supporté. Je crois que c'est intégré dans Hibernate mais NHibernate attend toujours – lomaxx