openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Dick (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-728) SubQuery with Exists generates invalid SQL
Date Tue, 23 Sep 2008 14:59:44 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12633757#action_12633757
] 

Michael Dick commented on OPENJPA-728:
--------------------------------------

I think this is a duplicate of https://issues.apache.org/jira/browse/OPENJPA-681 which is
already fixed in snapshot builds (1.0.4, 1.2.1, and 1.3.0). 

I ran the new testcase on 1.3.0, 1.2.1 and 1.0.4 and it passed, it fails on 1.0.3 and 1.2.0
though. 

I did have to make one change to the app. In orm.xml I changed the second named query name
to match the string in the testcase : 
<!--
  <named-query name="employeesWithNoPhoneNumberReport">
 -->
  <named-query name="employeesWithNoPhoneReport">

Björn, could you try a snapshot build? The latest 1.3.0 build is available at http://openjpa.apache.org/builds/latest/downloads/apache-openjpa-1.3.0-SNAPSHOT-binary.zip.


> SubQuery with Exists generates invalid SQL
> ------------------------------------------
>
>                 Key: OPENJPA-728
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-728
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: query
>    Affects Versions: 1.0.2, 1.0.3, 1.1.0, 1.2.0
>         Environment: Windows XP, JDK 1.6.0_07, Derby and HSQL.
>            Reporter: Bjorn Beskow
>            Assignee: Michael Dick
>            Priority: Critical
>         Attachments: openjpa-bug.zip, openjpa-bug.zip
>
>
> When using a subquery containing EXISTS, the generated SQL contains table aliases that
does not exist in the select statement. For example, the following query:
>       SELECT new test.dto.EmployeeReportDTO(e.name, a.city)
>       FROM Employee e JOIN e.address a 
>       WHERE e.name LIKE :name
>       AND EXISTS (SELECT p.number from PhoneNumber p WHERE p.owner = e)
> will cause the following exception:
> Column not found: T3.CITY in statement [SELECT t0.name, t3.city FROM Employee t0 INNER
JOIN Address t1 ON t0.address_id = t1.id WHERE (t0.name LIKE ? ESCAPE '\' AND NOT (EXISTS
(SELECT t2.number FROM Address t1, PhoneNumber t2 WHERE (t2.owner_id = t0.id))))]

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