openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Catalina Wei (JIRA)" <j...@apache.org>
Subject [jira] Reopened: (OPENJPA-1719) Prepared SQL cache ordering problem with subqueries.
Date Sat, 24 Jul 2010 21:23:49 GMT

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

Catalina Wei reopened OPENJPA-1719:
-----------------------------------


Martin Dirichs,
Could you provide a test case that reproduce the IndexOutOfBoundsException ?

Thanks.

> Prepared SQL cache ordering problem with subqueries. 
> -----------------------------------------------------
>
>                 Key: OPENJPA-1719
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1719
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: Michael Dick
>            Assignee: Catalina Wei
>             Fix For: 2.0.1, 2.1.0
>
>         Attachments: sql-cache-subqordering.diff.txt
>
>
> I've found what appears to be an ordering issue with subqueries and the prepared SQL
cache. The attached patch shows where I think the problem lies and adds a test method that
shows the problem. 
> To summarize: When the prepared SQL cache is enabled we reorder the parameter values
provided by the user. If a query contains named parameters and a subquery which also contains
named parameters the placement of the subquery becomes important. 
> The following query will work : 
> SELECT p FROM Person p WHERE p.id IN (SELECT p1.id FROM Person p1 WHERE p1.lastUpdated
>= :date ) AND p.name = :name
> But this one fails with a SQLDataException.
> SELECT p FROM Person p WHERE  p.name = :name AND p.id IN (SELECT p1.id FROM Person p1
WHERE p1.lastUpdated >= :date )
> Assuming that the query is executed something like this : 
>         Query query = em.createQuery(query);
>         query.setParameter("name", "mike");
>         query.setParameter("date", new java.sql.Date(1005397));  

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