public List getRandResult(final String hql, final Object[] values,final int len){
List list = getHibernateTemplate().executeFind(new HibernateCallback()
{
public Object doInHibernate(Session session)
throws HibernateException, SQLException
{
Query query = session.createQuery(hql);
if (hql.indexOf('?') > 0 && values != null) {
for (int i = 0 ; i < values.length ; i++)
{
query.setParameter( i, values[i]);
}
}
List result = query.list();
if(result.size() > len){
Random r=new Random();
result = query.setFirstResult(r.nextInt(result.size()-len)+1).setMaxResults(len).list();
}
return result;
}
});
return list;
}
List list = getHibernateTemplate().executeFind(new HibernateCallback()
{
public Object doInHibernate(Session session)
throws HibernateException, SQLException
{
Query query = session.createQuery(hql);
if (hql.indexOf('?') > 0 && values != null) {
for (int i = 0 ; i < values.length ; i++)
{
query.setParameter( i, values[i]);
}
}
List result = query.list();
if(result.size() > len){
Random r=new Random();
result = query.setFirstResult(r.nextInt(result.size()-len)+1).setMaxResults(len).list();
}
return result;
}
});
return list;
}