[ 
http://issues.apache.org/jira/browse/IBATIS-215?page=comments#action_12372175 ] 

Paul Benedict commented on IBATIS-215:
--------------------------------------

This issue should be closed. For complex computations, they can be done in the 
DAO and their value passed into the parameterClass before the query.

> BSF for dynamic queries
> -----------------------
>
>          Key: IBATIS-215
>          URL: http://issues.apache.org/jira/browse/IBATIS-215
>      Project: iBatis for Java
>         Type: New Feature
>   Components: SQL Maps
>     Reporter: Paul Benedict

>
> While the list of tags to form dynamic queries is suitable, they are limiting 
> because they stop the "dreamer from dreaming." More complex logic cannot be 
> addressed without creating a barrage of new tags.
> I propose a new tag called <script> (or something similar) which is backed by 
> the Apache Bean Scripting Framework. The parameter map passed in to the 
> <statement> should load it into the scripting Interpreter object and expose 
> it for the <script> tag so that dynamic Java or JavaScript can return boolean 
> parameters. Obviously there is a performance hit for this and the previous 
> tags would be much simpler for common boolean operations, but the sky is the 
> limit when it comes to what you can compare inside the script.
> Example:
> <select id="dynamicGetAccountList" cacheModel="resultMap="account-result" >
>     select * from ACCOUNT
>    <script><expression>obj.id != null && obj.id > 0 && 
> obj.lastName.startsWith("B")"</expression>
>      where ACC_ID = #id# and
>     ACC_NAME = #lastName#
>   </script>
>   order by ACC_LAST_NAME
> </select>
> If BSF is not suitable, please look into OGNL which is popular within Apache 
> Tapestry and is a very good alternative.

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