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.
> > >
> >
>
>
