ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (ODE-628) Some DBMS (like Ingres) don't support update on queries with join, we have to use subqueries instead
Date Wed, 29 Jul 2009 23:17:14 GMT

     [ https://issues.apache.org/jira/browse/ODE-628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Matthieu Riou resolved ODE-628.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 1.3.3
         Assignee: Matthieu Riou

Patch applied. Thanks!

> 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
>            Assignee: Matthieu Riou
>             Fix For: 1.3.3
>
>         Attachments: dao-hibernate.patch
>
>
> 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.


Mime
View raw message