Nhibernate 按时间排列的订单(HQL)

Nhibernate 按时间排列的订单(HQL),nhibernate,random,pagination,hql,Nhibernate,Random,Pagination,Hql,我正在使用asp.net Mvc 2和NHibernate开发一个web应用程序,我正在页面中分页数据(类别中的产品),但这些数据是随机的,因此,我正在使用HQL语句链接: string hql = "from Product p where p.Category.Id=:IdCategory order by rand()"; 它的工作很好,但当我的网页,有时相同的产品出现在第一,第二等。。。页面,因为它是按兰德()排序的 有没有办法按固定时间(内部时间)进行随机排序?或者任何解决方案?我不

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

string hql = "from Product p where p.Category.Id=:IdCategory order by rand()";
它的工作很好,但当我的网页,有时相同的产品出现在第一,第二等。。。页面,因为它是按兰德()排序的


有没有办法按固定时间(内部时间)进行随机排序?或者任何解决方案?

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

我看不出你为什么故意将数据随机化。如果没有特定的顺序,为什么不按主键排序?

为随机数生成器设定种子:

order by rand(123)

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

为随机数生成器设定种子:

order by rand(123)

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

Hi Jon,这是一个广告产品页面,我想将记录随机分配给用户。。。因为如果我不这样做,同样的产品总是出现在首页上!在这种情况下,您需要基于对每个用户保持不变的东西提供一些稳定的排序。你那里有什么曲奇吗?嗯,我没有任何曲奇或会话。但我可以把它的兰德和会议上!嗨,乔恩,这是一个广告产品页面,我想把记录随机化给用户。。。因为如果我不这样做,同样的产品总是出现在首页上!在这种情况下,您需要基于对每个用户保持不变的东西提供一些稳定的排序。你那里有什么曲奇吗?嗯,我没有任何曲奇或会话。但我可以把它的兰德和会议上!我可以用SessionId吗?或者使用随机对象来获取一个数字,并在会话中使用它!好。。我试试这个!感谢您可以使用会话ID,但您需要先将其转换为一个数字(如果尚未转换):
Integer.parseInt(sessionId,radix)
。感谢您,我想我需要按时间(1或5分钟)缓存一个数字并使用它。。。太好了!我可以用SessionId吗?或者使用随机对象来获取一个数字,并在会话中使用它!好。。我试试这个!感谢您可以使用会话ID,但您需要先将其转换为一个数字(如果尚未转换):
Integer.parseInt(sessionId,radix)
。感谢您,我想我需要按时间(1或5分钟)缓存一个数字并使用它。。。太好了!干杯