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