AnsweredAssumed Answered

myBatis compatibility

Question asked by logasram on Oct 21, 2015
Latest reply on Oct 26, 2015 by logasram
Hi,
I am new to Apache Activiti BPM tool.
We are planning to define processes using Activiti BPM tool.
When we integrated Activiti process with our application, we found that the invocation singleResult() method (on ExecutionQuery and TaskQuery) failed every time with below exception,

HTTP Status 500 -
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
### The error may exist in org/activiti/db/mapping/entity/Execution.xml
### The error may involve org.activiti.engine.impl.persistence.entity.ExecutionEntity.selectExecutionsByQueryCriteria-Inline
### The error occurred while setting parameters
### SQL: select * from
      (
         select a.*, ROWNUM rnum
         from
         (
            select distinct RES.* , P.KEY_ as ProcessDefinitionKey, P.ID_ as ProcessDefinitionId
            from ACT_RU_EXECUTION RES
            inner join ACT_RE_PROCDEF P on RES.PROC_DEF_ID_ = P.ID_
            WHERE RES.PROC_INST_ID_ = ?
            order by order by RES.ID_ asc
         ) a
         where ROWNUM < ?
      )
      where rnum >= ?
### Cause: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
(The order by clause was getting appended twice)
We understand that the activiti internal calls to database is made only using myBatis framework.
Upon analysis we found that the issue occurred due to the incompatible myBatis jar. Our application uses myBatis-3.3.0 but activiti works fine with myBatis3.2.5.
I need clarification for the below,
1. Is there any option to support latest myBatis version(as we are not supposed to downgrade myBatis)?
2. Is there any method that supports JDBC instead of myBatis, which would not impact if we upgrade to newer versions of myBatis in future?

Please help me here.
Thanks.


Outcomes