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*





Odpovedet emailem