Alguem poderia indicar um caminho de como poderia ser feito uma consulta que retorna as “N” tuplas mais recentes?
o usuario deve fornecer o “N”…
to usando hibernate…
enquanto isso, vou pesquisando
obrigado
Alguem poderia indicar um caminho de como poderia ser feito uma consulta que retorna as “N” tuplas mais recentes?
o usuario deve fornecer o “N”…
to usando hibernate…
enquanto isso, vou pesquisando
obrigado
eu poderia fazer com bacalhau…
public List<ObjectQualquer> findByDate(Date date, int n) {
List<ObjectQualquer> a = getHibernateTemplate()
.find("from ObjectQualquer n where trunc(n.date) = trunc(?) order by n.date desc",date);
// e depois eu fazia um for com o parametro "n"
}
mas procuro outra forma de fazer… queria ir no banco e trazer so os “n” elementos… e não todo mundo pra depois pegar os “n”…
tem uma clausula sql “limit” que serve pra isso…
mas nao sei se existe em todos os bancos…
khichfy,
Você pode utilizar Criteria para fazer isso:
Criteria criteria = session.createCriteria(SuaClasse.class).addOrder(Order.desc("DATA"));
criteria = filter.execute(criteria);
criteria = sort.execute(criteria);
criteria.setFirstResult(rowStart);
criteria.setMaxResults(rowEnd);
return criteria.list();
Abraço.
Bacana… eu tava vendo o Criteria, mas estava longe de ver uma solução…
pois estava tentando entender uns metodos como
public static Criterion sizeEq(String propertyName,int size)
public static Criterion sizeNe(String propertyName,int size)
quando vi sua dica, tentei e estou tentando coloca-la para funcionar…
mas quem é filter e sort… ?
de onde eles vem ? :shock: :oops:
valeu
na verdade minha classe que contem o metodo resposalvel para realizar a consulta extend de HibernateDaoSupport que por sua vez extends de org.springframework.dao.support.DaoSuppor
então seguindo o padrão do projeto aqui eu uso DetachedCriteria e não Criteria…
public class HibernateNewsDAO extends HibernateDaoSupport implements NewsDAO {
.
.
.
public List<News> findRecents(int n) {
DetachedCriteria criteria = DetachedCriteria.forClass(News.class).addOrder(Order.desc("DATA"));;
criteria = filter.execute(criteria);
criteria = sort.execute(criteria);
criteria.setFirstResult(rowStart);
criteria.setMaxResults(rowEnd);
return criteria.list();
}
.
.
.
}
agora estou tentando entender quem é filter e sort…