Title: Message

Ja to robím takto

        /** Create criteria. */
        private DetachedCriteria getCriteriaTp412(...)
        {
                DetachedCriteria crit = DetachedCriteria.forClass(Tp412TO.class, "t");
                crit.add( Subqueries.propertyEq("t." + Tp412TO.COL_tp412aSaveTime, subselect) );
                ...
                return crit;
        }
               
        /** Load List.
         */
        public List loadList(...)
        {
                DetachedCriteria crit = getCriteriaTp412(...);
                HibernateTemplate template = getHibernateTemplate();
                return template.findByCriteria(crit, aFirstResult, aMaxResult);
        }

        /** Load only count of total records.
         */
        public int loadListTotalCount(...)
        {
                DetachedCriteria crit = getCriteriaTp412(...);
                crit.setProjection( Projections.rowCount() );
                HibernateTemplate template = getHibernateTemplate();
                List list = template.findByCriteria(crit);
                Number count = (Number)list.get(0);
                return count.intValue();
        }

 
 
Čiže doplnením zvýrazneného riadku do normálneho kritéria, dostanem len jeho COUNT(*)
 
Rastislav "Bedo" Siekel



> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]] On Behalf Of Michal Palička
> Sent: 19. septembra 2006 10:04
> To: Java
> Subject: RE: hibernate substr nebo position
>
>
>
> Dobry den,
>
> jeste je moznost to udelat takto:
>
> (1)
> Vyberu dle kriteria primarni klice vyhovujicich zaznamu.
>
> (2)
> Count spocitam v Jave.
>
> (3)
> Konkretni objekty pak ziskavam na zaklade prve nactene kolekce
> klicu priblizne takto "from Cat c where c.id in (keys)".
>
> Podminku vyberu specifikuji jen poprve, kdyz nacitam klice.
> Nacitani objektu po strankach je v podstate stale stejne.
>
> mp.
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]] On Behalf Of Burdik Petr
> Sent: Tuesday, September 19, 2006 9:52 AM
> To: Java
> Subject: Re: hibernate substr nebo position
>
> 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.htm
> >>> l#setFirstResult%28int%29>
> >>> a *||*setFetchSize
> >>>
> <http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Criteria.htm
> >>> l#setFetchSize%28int%29> pro snadne strankovani (teda
> pokud to umi
> >>> databaze).
> >>>
> >>>   Lukas*
> >>>
> >>> 
> >>>    
> >>
> >>
> >>  
> >
> >
>
>

Odpovedet emailem