Mark Struberg created OPENJPA-2179:
--------------------------------------

             Summary: 'distinct' and 'join' combinations lead lots of 
unneccessary sub-queries for @Embedded and @Lob fields
                 Key: OPENJPA-2179
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2179
             Project: OpenJPA
          Issue Type: Bug
          Components: kernel
    Affects Versions: 2.2.0
            Reporter: Mark Struberg
            Assignee: Mark Struberg
             Fix For: 2.3.0


I have an Entity (Course) with a simple @Embedded field and a @Lob. I do not 
use any LAZY attribution on them!


If I do a normal em.find, the entity will be loaded as a whole (all the fields, 
including the embedded and the lob will be fetched immediately).
Sidenote: the Lecturer referred in the select is defined as
    @OneToMany(mappedBy = "course",
            cascade = {CascadeType.PERSIST, CascadeType.REMOVE, 
CascadeType.MERGE},
            orphanRemoval = true, fetch = FetchType.EAGER)
    @OrderColumn(name = "POSITION")
    private List<Lecturer> lecturers;

The following selects DO work
* "select c from Course c join c.lecturers l "
* "select distinct c from Course c"

The following selects create tons of subqueries! 1 separate sub-query for each 
@Embedded field, and also for each @Lob

* "select distinct c from Course c join c.lecturers l "
* "select distinct c from Lecturer l join l.course c"
* "select c from Lecturer l join l.course c" 


This happens ONLY if I run this stuff against Oracle. In MySQL it seems to work 
properly.

I'll try to create a unit test for it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to