我正在使用asp.net Mvc 2和NHibernate开发一个Web应用程序,我在页面中分页数据(类别中的产品),但这些数据是随机的,因此,我正在使用HQL语句链接这个:
string hql = "from Product p where p.Category.Id=:IdCategory order by rand()";
它工作正常,但是当我翻页时,有时相同的产品出现在第一页,第二页等页面中,因为它是按rand()排序的。
有没有办法按期间(内部时间)固定随机订单?或任何解决方案?
答案 0 :(得分:4)
种子随机数生成器:
order by rand(123)
我建议使用会话范围的随机数作为种子。这样,页面不会突然为单个用户重新排序,但对于每个用户,页面的排序仍然不同。
答案 1 :(得分:1)
我不明白你为什么故意随机化数据。如果您没有特定的订单,为什么不按主键排序?