【发布时间】:2010-12-20 11:51:22
【问题描述】:
如何使用 HQL 来选择满足特定条件的特定对象?
我们尝试了以下方法来生成前十个订阅的 RSS 提要列表(其中 SubscriptionCount 是派生属性):
var topTen = UoW.Session.CreateQuery( @"SELECT distinct rss
FROM RssFeedSubscription rss
group by rss.FeedUrl
order by rss.SubscriptionCount DESC
")
.SetMaxResults(10)
.List<RssFeedSubscription>();
目的只是选择数据库中的两个唯一提要 URL,而不是数据库中实例化为对象的十行。上面的结果是:
Column 'RssSubscriptions.Id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
有可能只是精简结果,以便我们在从数据库中取回数据后取出两个唯一的提要 URL,但是必须有一种方法可以在数据库级别使用 HQL 做到这一点吗?
编辑:我们意识到可以进行标量查询,然后手动提取值,但是没有办法简单地为拉回的对象指定匹配条件吗?
【问题讨论】:
标签: nhibernate hql