Jde to i takto
Criteria c = ...;
c.setProjection(Projections.count("id"));
Integer count = (Integer) c.uniqueResult();
kde id je jmeno sloupce s primarnim klicem.
Jaroslav Hurdes
Burdik Petr wrote:
No to jde i u query. Tam je to uplne shodne. Podle me jejich hlavni
teziste je v tom ze kdyz mate formular pro vyhledavani podle spousty
kriterii, nemusite davat dohromady zadny select, pocitat pozice
parametru v dotazu, ... Alespon proto ho chci pouzit ja.
.setFirstResult((((int) selectedPage - 1) * (int) interval))
.setMaxResults((int) interval)
To funguje u obou. Jak query, tak criteria.
Pet
Lukas Barton wrote:
Burdik Petr wrote:
Ahoj,
doted jsem pouzival klasicky query. mam vzdy dva dotazy. Jeden na pocet
objektu vyhovujicich kriteriim a druhy na seznam objektu. Jenom nevim
jak nahradit ten stary count pomoci criteria. Nemate napad? tech
kriterii muze byt vice.
// stary count
String selectCount = "select count(*) from Article article where
article.artIdSupplier like ?";
Integer count = (Integer) session.createQuery(selectCount)
.setParameter(0,"%" + artIdSupplier + "%")
.uniqueResult();
Predpokladam, ze bude fungovat neco jako:
.createCriteria(Cat.class)
.setProjection( Projections.projectionList().add( Projections.rowCount()
).setProjection( Projections.projectionList()
.add( Projections.rowCount() )
Vyhodou Criterii potom je, ze se da pouzit ||*setFirstResult
<http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Criteria.html#setFirstResult%28int%29>
a *||*setFetchSize
<http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Criteria.html#setFetchSize%28int%29>
pro snadne strankovani (teda pokud to umi databaze).
Lukas*