1
我有一个使用Hibernate的项目。 这有一个名为Question
的类。 每个Question
都有一个难度级别(1,2,3); 每个Question
也有一个属性是字段(a,b,c,d,e,f,g,h,i,k);休眠标准查询随机
假设我有100个问题。我想与条件随机20问题:在水平
- 7个问题中的1级
- 7个问题中的3级
- 每场2
- 6个问题至少有1个问题
感谢所有^^
我有一个使用Hibernate的项目。 这有一个名为Question
的类。 每个Question
都有一个难度级别(1,2,3); 每个Question
也有一个属性是字段(a,b,c,d,e,f,g,h,i,k);休眠标准查询随机
假设我有100个问题。我想与条件随机20问题:在水平
感谢所有^^
首先,我觉得这个问题太难用一个Hibernate查询,邻来解决即使是一组Hibernate查询。
这是我会怎么做:
Map<Field, List<Question>>
和shuffle都在这个地图如果对于每个字段,保证每个级别至少有一个问题,这应该有效。如果情况并非如此,那就更困难了。
如果您有更多的问题是100,他们不能加载到内存中,你可以使用同一种算法,而是使用random queries选择问题:
我认为我们可以从集合中删除步骤3中选定的问题,所以我们不必在步骤4中重新洗牌集合;如果不仅有100个问题,而且我们无法将所有这些问题都加载到内存中呢? – user1151484 2012-01-16 10:01:07
第4步的要点是将所有剩余的问题,无论他们的字段是什么,放在同一个列表中。如果你不洗牌这个列表,你会发现给定字段的所有问题组合在一起。我将编辑关于最后一点的问题。 – 2012-01-16 10:07:03