Nekdy si pripadam uplne divny. Nekdy hledam slozitejsi reseni nez by
bylo potreba. Diky za tento kousek kodu. Je to parada.
Pet
Rastislav Siekel wrote:
>
> 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*
> > >>>
> > >>>
> > >>>
> > >>
> > >>
> > >>
> > >
> > >
> >
> >
>