Nhibernate 标准查询 - 对集合进行排序

发布于 2024-08-10 20:54:57 字数 338 浏览 9 评论 0原文

我有一个 Person 类。 Person 类包含 Friends(也是 Person 对象)的集合。 person 类还有一个 LastLogin 属性,它是 LastLogin 时间。

对于给定的人,我想返回按 LastLogin 降序排列的前 10 个朋友。

HQL我可以做没有问题: selectfriendsfromPersonpersoninnerjoinperson.Friendsfriendswhereperson=:personorderbyfriends.LatestLogindesc

如何在条件查询中编写此内容?我不想要包含的人对象,只想要由LatestLogin 排序的人的朋友列表。

I have a Person class. A person class contains a collection of Friends (also Person objects). A person class also has a LatestLogin property which is the LatestLogin time.

For a given person, I want to return their first 10 friends ordered by descending LatestLogin.

HQL I can do no problem:
select friends from Person person inner join person.Friends friends where person = :person order by friends.LatestLogin desc

How do I write this in a Criteria Query? I don't want the containing person object, just a List of the person's friends ordered by LatestLogin.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

把回忆走一遍 2024-08-17 20:54:57

这里是:

var cachedPosts = Session.CreateCriteria<Person>("main")
                .CreateCriteria("Friends", "f")
                .Add(Restrictions.Eq("f.Id", person.ID))
                .AddOrder(Order.Desc("main.LatestLogin"))
                .List<Person>();

Here it is:

var cachedPosts = Session.CreateCriteria<Person>("main")
                .CreateCriteria("Friends", "f")
                .Add(Restrictions.Eq("f.Id", person.ID))
                .AddOrder(Order.Desc("main.LatestLogin"))
                .List<Person>();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文