You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Nick Johnson (JIRA)" <ji...@apache.org> on 2007/11/24 00:43:43 UTC

[jira] Updated: (OPENJPA-450) Suboptimal Query strategy for JPA queries that return multiple Entities

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

Nick Johnson updated OPENJPA-450:
---------------------------------

    Attachment: openjpa_testcase.jar

Test case that shows the suboptimal query strategy; includes schema and a testcase that will create the schema on a PostgreSQL database.  (At the time I started this it wasn't clear where the problem came from so I decided to vary as little as possible; otherwise I'd have used something like hsql to make it easier.)

> Suboptimal Query strategy for JPA queries that return multiple Entities
> -----------------------------------------------------------------------
>
>                 Key: OPENJPA-450
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-450
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: query
>    Affects Versions: 1.0.1
>            Reporter: Nick Johnson
>            Priority: Minor
>         Attachments: openjpa_testcase.jar
>
>
> When a Query returns instances of  multiple Entity classes, the query strategy is suboptimal.  First it issues a query to select all the primary keys, and then additional queries are issued for every one of those primary keys.  If exactly one type of Entity is in the SELECT clause, a much more efficient, single query is constructed.
> I'll attach a test case that demonstrates this.  Watch what happens when this:
> 		Query q = em.createQuery("Select message, article from Message message, Article article  "
> is changed to this:
> 		Query q = em.createQuery("Select message from Message message, Article article  "
> in terms of which SQL statements are executed.
> FYI,  there's more detail on the users list with the subject, "how to avoid large number of queries" and Patrick Linskey and I have emailed back and forth a bit about it.  I'm opening this as a nicer way of keeping track of the issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.