Re: Obdoba PreparedStatement.setMaxRows() na straně databáze
Lukas Barton
lukas na cnawr.cz
Čtvrtek Březen 11 13:37:01 CET 2010
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 <tapik na buchtovi.cz>
> 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, tapik na buchtovi.cz, http://tapikuv.blogspot.com
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://amaio.cz/pipermail/konference/attachments/20100311/57a62378/attachment.htm>
Další informace o konferenci Konference