कृपया टिप्पणी करने और सुधार पोस्ट करने के लिए स्वतंत्र महसूस करें। यह मैं क्या मिल गया है:
public List<Item> getRandomTenItems() {
DetachedCriteria criteria = DetachedCriteria.forClass(Item.class).addOrder(Order.desc("id"));
List<Item> idlist = new LinkedList<Item>(getHibernateTemplate().findByCriteria(criteria, 0, 1));
long max = idlist.get(0).getId();
criteria = DetachedCriteria.forClass(Item.class).addOrder(Order.asc("id"));
idlist = new LinkedList<Item>(getHibernateTemplate().findByCriteria(criteria, 0, 1));
long min = idlist.get(0).getId();
List<Item> rtn = new LinkedList<Item>();
HashSet<Long> ids = new HashSet<Long>();
int i=0;
while(i<10) {
long itemId = RandomUtils.rand(min, max);
if(ids.contains(itemId)) continue;
List<Item> list = new LinkedList<Item>(getHibernateTemplate().findByNamedParam(
"from Item where archived = false and available = true and id = :itemId", "itemId", itemId));
if(!list.isEmpty()){
rtn.add(list.get(0));
ids.add(list.get(0).getId());
i++;
}
}
return rtn;
}
स्रोत
2010-12-11 23:42:12
कृपया अपनी पोस्ट में [हस्ताक्षर या टैगलाइन का उपयोग न करें] (http://stackoverflow.com/faq#signatures)। – meagar