Some DBMS (like Ingres) don't support update on queries with join, we have to
use subqueries instead
----------------------------------------------------------------------------------------------------
Key: ODE-628
URL: https://issues.apache.org/jira/browse/ODE-628
Project: ODE
Issue Type: Improvement
Components: BPEL Runtime
Environment: BPMS 6.0 beta2
Reporter: Oleg Zenzin
There's at least one place where we have error during runtime if we use
Hibernate on Ingres for persistance: class
org.apache.ode.daohib.bpel.CorrelatorDaoImpl. The query "from
HCorrelatorSelector as hs where hs.processType = :processType and
hs.correlator.correlatorId = :correlatorId" used in this class makes Hibernate
to implicitly generate SQL with join for update.
Unfortunately some DBMS (like Ingres for instance) do not support update for
queries with JOIN. The workaround is to exlicitly define HQL with subquery
instead:
"from HCorrelatorSelector as hs where hs.processType = :processType and
hs.correlatorId = (select hc.id from HCorrelator hc where hc.correlatorId =
:correlatorId)"
In cases like that we need dynamically define which HQL to use, i.e. we need to
know which kind of DBMS we are running under. The definitive indicator is
dialect (instance of org.hibernate.dialect.Dialect) is set for the current
Session. We don't have possiblity now to access Session properties (all
indicators are private fields). We should add some indicator which would be
dynamically accessible for assessment.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.