Zdar,

v Hibernate pomocí criterií


Criteria criteria;
..
criteria.setMaxResults(100);
criteria.setFirstResult(0);

Provoz nad Oracle ok.

Jara






Oto Buchta <ta...@buchtovi.cz>
Odeslal: konference-boun...@java.cz
11.03.2010 13:25
Odpovězte prosím uživateli Java
 
        Komu:   Java <konference@java.cz>
        Kopie: 
        Předmět:        Obdoba PreparedStatement.setMaxRows() na straně 
databáze

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, ta...@buchtovi.cz, http://tapikuv.blogspot.com

Odpovedet emailem