按时间顺序排序(HQL)

时间:2010-05-26 17:31:29

标签: nhibernate random pagination hql

我正在使用asp.net Mvc 2和NHibernate开发一个Web应用程序,我在页面中分页数据(类别中的产品),但这些数据是随机的,因此,我正在使用HQL语句链接这个:

string hql = "from Product p where p.Category.Id=:IdCategory order by rand()";

它工作正常,但是当我翻页时,有时相同的产品出现在第一页,第二页等页面中,因为它是按rand()排序的。

有没有办法按期间(内部时间)固定随机订单?或任何解决方案?

2 个答案:

答案 0 :(得分:4)

种子随机数生成器:

order by rand(123)

我建议使用会话范围的随机数作为种子。这样,页面不会突然为单个用户重新排序,但对于每个用户,页面的排序仍然不同。

答案 1 :(得分:1)

我不明白你为什么故意随机化数据。如果您没有特定的订单,为什么不按主键排序?