Using Templates in SQL Maps
---------------------------

         Key: IBATIS-144
         URL: http://issues.apache.org/jira/browse/IBATIS-144
     Project: iBatis for Java
        Type: New Feature
  Components: SQL Maps  
 Environment: all
    Reporter: Steffen Legler
    Priority: Minor


For readability and writing less redundant code ist would be nice to have 
templates within a SQLMap.

---CURRENT------------------------------------------------------------
<sqlMap namespace="someNs">

<typeAlias alias="class1" type="com.someCompany.class1"/>

        <insert id="insert" parameterClass="class1">
                insert into table(id,           
                        <isEqual property="selectionId" compareValue="1">
                                column1
                        </isEqual>
                        <isEqual property="selectionId" compareValue="2">
                                column2
                        </isEqual>
                 ) values (#instanceId#, #value# )      
        </insert>


        <update id="update" parameterClass="class1">
                update table set 
                        <isEqual property="selectionId" compareValue="1">
                                column1
                        </isEqual>
                        <isEqual property="selectionId" compareValue="2">
                                column2
                        </isEqual>
                = #value# where id = #instanceId#
        </update>
</sqlMap>




---WISH TO HAVE------------------------------------------------------------
<sqlMap namespace="someNs">

<typeAlias alias="class1" type="com.someCompany.class1"/>
<template alias="columnSelection" type="
                        <isEqual property="selectionId" compareValue="1">
                                column1
                        </isEqual>
                        <isEqual property="selectionId" compareValue="2">
                                column2
                        </isEqual>              
"/>

        <insert id="insert" parameterClass="class1">
                insert into table(id,$columnSelection) values (#instanceId#, 
#value# )  
        </insert>

        <update id="update" parameterClass="class1">
                update table set $columnSelection
                = #value# where id = #instanceId#
        </update>
</sqlMap>

---
The following is taken from the velocity tutorial:

In almost all cases the shorthand notation for references can be used, but in 
some cases the formal notation is required for correct processing.

Jack is a $vicemaniac.

There is ambiguity here, and Velocity assumes that $vicemaniac, not $vice, is 
the Identifier that you mean to use. Finding no value for $vicemaniac, it will 
return $vicemaniac. Using formal notation can resolve this problem.

Jack is a ${vice}maniac.

Now Velocity knows that $vice, not $vicemaniac, is the reference. Formal 
notation is often useful when references are directly adjacent to text in a 
template. 
---



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