camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ramon van den Hoven (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CAMEL-3066) Result is empty after calling a stored procedure
Date Mon, 30 Aug 2010 09:38:40 GMT

    [ https://issues.apache.org/activemq/browse/CAMEL-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=61500#action_61500
] 

Ramon van den Hoven commented on CAMEL-3066:
--------------------------------------------

Yes sorry, I was on holiday for a week.
It's hard to create a unit test for this one, since it connects to an oracle database.
I'm questioning if it is a camel issue, maybe it's a ibatis issue;


The statement: 
result = client.queryForObject(statement, in);
expects a statement: in my case a stored procedure:
{call lsuser.liq_vortex.LIQ_VORTEX_ALL_STRUCT(?,?,?,?,?)} 
The in parameter is a Map, where I defined the input parameters for the stored procedure
The last parameter in the Map is the out parameter. So my results are in the Map indeed and
not in the return value of the method.
This way no results will be passed on in the camel route.
I will try to create a simple project.










> Result is empty after calling a stored procedure
> ------------------------------------------------
>
>                 Key: CAMEL-3066
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3066
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-ibatis
>    Affects Versions: 2.4.0
>         Environment: Windows, eclipse, oracle
>            Reporter: Ramon van den Hoven
>
> When calling a stored procedure in the following form {call lsuser.liq_vortex.LIQ_VORTEX_ALL_STRUCT(?,?,?,?,?)}
where the last ? is an OUT param, the result is null.
> See for comments in the following function in the  IbatisProducer class
> Look for the NOTE:
> private void doQueryForObject(Exchange exchange) throws Exception {
>         SqlMapClient client = endpoint.getSqlMapClient();
>         Object result;
>         Object in = exchange.getIn().getBody();
>         if (in != null) {
>             if (LOG.isTraceEnabled()) {
>                 LOG.trace("QueryForObject: " + in + "  using statement: " + statement);
>             }
>             result = client.queryForObject(statement, in);
> NOTE: The in parameter has the resultset, in my case a HashMap, isn't it always a Map?
> should be something like:
>         result = in.get(outParameterKey)
>         } else {
>             if (LOG.isTraceEnabled()) {
>                 LOG.trace("QueryForObject using statement: " + statement);
>             }
>             result = client.queryForObject(statement);
>         }
>         doProcessResult(exchange, result);
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message