ibatis-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry Meadors (JIRA)" <ibatis-...@incubator.apache.org>
Subject [jira] Commented: (IBATIS-333) Patch which allow to subsititute property with column name from ResultMap in dynamic sql
Date Fri, 18 Aug 2006 14:46:14 GMT
    [ http://issues.apache.org/jira/browse/IBATIS-333?page=comments#action_12429031 ] 
Larry Meadors commented on IBATIS-333:

I do not really see the value of this patch, to me it seems to obfuscate more than clarify.

Why not just use the $substitution$ syntax? It's more direct (i.e., it doesn't rely on a result
map), and more clear (i.e., if the parameter x is "ACC_ID", then $x$ becomes ACC_ID).

> Patch which allow to subsititute property with column name from ResultMap in dynamic
> ----------------------------------------------------------------------------------------
>                 Key: IBATIS-333
>                 URL: http://issues.apache.org/jira/browse/IBATIS-333
>             Project: iBatis for Java
>          Issue Type: New Feature
>          Components: SQL Maps
>    Affects Versions: 2.2.0
>            Reporter: Andrey
>         Attachments: insertColumnName.patch
> In situtation, when i need to implement sorting, I need to create such monster, like
abator creates for me. But
> if i only need sorting, here should be mapping beetween columns and properties (if they
specified explicitly
> in ResultMap). In this case, i can write 
>     <resultMap id="dynamicAccountResult" class="testdomain.Account">
>         <result column="ACC_ID" property="id"/>
>         <result column="ACC_FIRST_NAME" property="firstName"/>
>         <result column="ACC_LAST_NAME" property="lastName"/>
>         <result column="ACC_EMAIL" property="emailAddress"/>
>     </resultMap>
>   <select id="dynamicInsertColumnName"
>     parameterClass="string"
>     resultMap="dynamicAccountResult">
>     select
>       ACC_ID,
>       ACC_LAST_NAME,
>       ACC_EMAIL
>     from ACCOUNT
>     <dynamic>
>       <insertColumnName prepend="where"> = 1</insertColumnName>  <!--
ibatis replace this with column mapped for "id" passed as unnamed property -->
>       <insertColumnName prepend="order by"/> 
>     </dynamic>
>   </select>
>   public void testInsertColumnName() throws SQLException {
>     List list = sqlMap.queryForList("dynamicInsertColumnName", "id"); // Here we pass
our property name
>     assertEquals(1, list.size());
>   }
> SQL will be
>     select
>       ACC_ID,
>       ACC_LAST_NAME,
>       ACC_EMAIL
>     from ACCOUNT
>      where ACC_ID = 1
>      order by ACC_ID
> In any case, we can pass some AccountCriteria which will hold a list with soring properties
names and we can iterate in dynamic sql
> and get multiply field "order by" clause
> PS: Not all things tested yet. No errors thrown. This is alpha of this feature. This
is proof of conecpt (due of little amount of structural
> changes in other ibatis classes). If developers wan't this feature and agree with my
decisions, I'll implement all other bells and whishes
> like error checking, tests and may be other extensions for this tag.

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


View raw message