Include with parameter
----------------------

         Key: IBATIS-264
         URL: http://issues.apache.org/jira/browse/IBATIS-264
     Project: iBatis for Java
        Type: Improvement
  Components: SQL Maps  
    Versions: 2.1.7    
    Reporter: Nils Winkler
    Priority: Minor


I have the following problem: I include the same SQL snippet from
multiple select statements, some of them for completely unrelated
tables. This is done because these tables contain quite a few columns
with the same names in both tables.

<sql id="inc">
    name,
    value,
    foo,
    bar
</sql>

<select id="loadA">
    select id,
    <include refid="inc" />
    from A
</select>

<select id="loadB">
    select id,
    <include refid="inc" />
    from B
</select>

When including the list of columns, it would be quite handy to add a
parameter to the include, for example to set a table alias in case I
have a join between tables:

<select id="loadA">
    select a.id, b.id,
    <include refid="inc" />
    from A a
    inner join B b on (b.id = a.id)
    where b.baz = #baz#
</select>

In the above query, "name", "value" etc are no longer unique in the
query, most of the time you end up with the wrong values.

It would be great if I would be able to pass in a parameter to the
include, e.g.:

<select id="loadA">
    select a.id, b.id,
    <include refid="inc" param="a."/>
    from A a
    inner join B b on (b.id = a.id)
    where b.baz = #baz#
</select>

so I could have the SQL snippet defined like this:

<sql id="inc">
    $param$name,
    $param$value,
    $param$foo,
    $param$bar
</sql>

This way, all of the statements would still work and I could make sure
that the correct columns are used in each case.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to