Thank you, this is a good solution for my problem.

Fabien.

On 6/23/05, Larry Meadors <[EMAIL PROTECTED]> wrote:
Why not just do this:

<sql id="myNiftySql">
     FROM user_tbl [...] WHERE category="admin" AND ...
</sql>

<select id="countUsers" parameterClass="java.lang.String ">
    SELECT COUNT(*)
    <include id="myNiftySql">
</select>

<select id="getUsers" parameterClass="java.lang.String">
    SELECT *
    <include id="myNiftySql">
</select>

Larry


On 6/23/05, Fabien Le Floc'h <[EMAIL PROTECTED]> wrote:
> We could imagine a query template:
>
>  <template id="getUsersTemplate">
>  SELECT $templateProperty$ FROM user_tbl [...] WHERE category="admin" AND
> ...
>  </select>
>
>  <select id="countUsers">
>  <define property="templateProperty">COUNT(*)</define>
>  <include template="getUsersTemplate"/>
>  </select>
>
>  <select id="getUsers">
>  <define property="templateProperty">*</define>
>  <include template="getUsersTemplate"/>
>  </select>
>
>  It is not that much better, but it avoids to have a query that has 2
> meanings.
>
>  Fabien.
>
>
> On 6/23/05, Brandon Goodin <[EMAIL PROTECTED]> wrote:
> > I'm curious what _would_ be considered elegant? Anyway, the solution
> > you provided should be fine. Be sure to use remapResults="true". The
> > other route is simply to duplicate the two queries so that they
> > present cleaner and you don't need ot place a count boolean into your
> > parameter object.
> >
> > Brandon
> >
> > On 6/22/05, Fabien Le Floc'h <[EMAIL PROTECTED]> wrote:
> > > Hi,
> > >
> > >  I was wondering what would be the best way to write 2 queries that
> share
> > > almost everything with iBatis.
> > >
> > >  For example if I want to do
> > >  SELECT * FROM user_tbl [...] WHERE category="admin" AND ... LIMIT 50
> > >  SELECT COUNT(*) FROM user_tbl [...] WHERE category="admin" AND ...
> > >
> > >  ideally one would have 2 names, because it is a quite different result,
> but
> > > you want to perform both queries on the same set.
> > >
> > >  The way I found is to use a dynamic query with a parameter that will
> act as
> > > a switch.
> > >  <select id="getUsers" parameterClass=" java.lang.String">
> > >      SELECT
> > >      <isEqual property="value" compareValue="count">
> > >           COUNT(*)
> > >      </isEqual>
> > >      <isNotEqual property="value" compareValue="count">
> > >           *
> > >      </isNotEqual>
> > >       FROM user_tbl [...] WHERE category="admin" AND ...
> > >  </select>
> > >
> > >  As you can see, this is not very elegant. I could generate the xml, but
> > > should this kind of case be handled by iBatis?
> > >
> > >  The paginate queryForPaginatedList does not seem to support the total
> > > number of items available.
> > >
> > >  So if you have a more elegant solution I'll be very happy to hear from
> you.
> > >
> > >  Thanks for the great work on ibatis,
> > >
> > >  Fabien.
> > >
> >
>
>

Reply via email to