Hibernate to dela - metoda *setMaxResults*
Ale nemusi to chodit na vsech DB, zalezi na konkretnim dialektu - jeste
nedavno to neumel pro MS SQL v kombinaci s *setFirstResult*.

Z tech dialektu se da vykoukat konkretni SQL implementace pro dane databaze.

  Lukas

2010/3/11 Oto Buchta <[email protected]>

> Zdravím,
> mám tabulku o milionech záznamů, kde primárním klíčem je long, ale
> nejedná se o seqenci.
> Dívám se po generickém nástroji, který by mi vrátil pouze N záznamů s
> nejvyšším indexem menším než nějaké X,
> tedy umí něco, co by se mělo v JDBC řešit takto:
> Connection.prepareStatement("select * from tabulka where klic<X order
> by klic desc").setMaxRows(N);
>
> Jenomže toto je na řešeno na straně JDBC driveru, nikoli na straně
> databáze. Když to chci udělat databázovým strojem,
> musím to řešit pro každou DB zvlášť:
> Oracle: select * from tabulka where klic<X and rownum=N order by klic desc
> MySQL: select * from tabulka where klic<X order by klic desc limit 1,N
>
> Znáte takový generický nástroj, popřípadě dokážete poradit, jak
> nastavit Hibernate či iBatis či cokoli jiného, aby mi tuto službu
> poskytlo?
> Já ne a kamarád Gůgl taky nenapověděl.
>
> Dík moc,
> --
> Oto 'tapik' Buchta, [email protected], http://tapikuv.blogspot.com
>

Odpovedet emailem