Ahojda,
a posledni spek, v count sestavuju prakticky stejny dotaz jako v
samotnem strankovanem query. Premyslim jak nasazet vsechna criteria
jednou a pak zavolat jenom dva ruzne dotazy. Nebyl by to problem kdybych
nepotreboval napred ten count. Jde samozrejme napsat potomek criteria
ktery bude implementovat klonovani. Takze seberu prvni klon, vytvorim
jeden dotaz, druhy klon pak na query. Ale mozna ma nekdo nejake pekne
reseni tak si dam poradit :)
Pet
Jaroslav Hurdes wrote:
> 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*
>>>
>>>
>>>
>>
>>
>>
>
>