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

Rick Curtis commented on OPENJPA-2039:
--------------------------------------

> a) change the doc comments on the interface to be more clear/elaborate in the 
> user terms. 

That's where I'm stumbling. I really wouldn't expect most users to have the 
understanding of OpenJPA to want to control this aspect of loading. I only ran 
into this because of some of the trickery I'm trying to get working. 

If you get a chance, take a look at the unit test that I put together of this 
change.

> FKs for EAGER fields that are not in the current fetchplan aren't selected
> --------------------------------------------------------------------------
>
>                 Key: OPENJPA-2039
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2039
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.1.1, 2.2.0
>            Reporter: Rick Curtis
>            Assignee: Rick Curtis
>             Fix For: 2.2.0
>
>         Attachments: OPENJPA-2039.failingtest.patch, OPENJPA-2039.patch
>
>
> I am testing a scenario where I have an Entity with a number of eager/lazy 
> relationships and at runtime, using a FetchPlan, I want to mark all 
> relationships as lazy. I was able to hack around a bug reported previously on 
> this list about not being able to remove fields from a fetch plan by creating 
> a new fetch plan, removing the default fetch group, and re-adding all fields 
> you want back into the new fetch plan. This all seems to work.
> I found that owned *toOne relationships that are marked as lazy via 
> annotations we will select the foreign keys. If the relationships were marked 
> as eager, we don't select the foreign keys. This is where I believe the bug 
> is. In JDBCStoreManager.optSelect(...) we have a bit of code that looks to 
> see if a field is a not a part of the default fetch group, and if it was not 
> removed explicitly. This is wrong because for the sake of the load that is in 
> progress, I'm not using the default fetch group.
> With this JIRA I'd like to remove the two conditionals 
> '!fm.isInDefaultFetchGroup() && !fm.isDefaultFetchGroupExplicit()' so that we 
> will load the fks for lazy and eager marked fields.
> This seems safe enough to do as worst case, we will select an extra field 
> from a table that we are already selecting from. Best case, when accessing a 
> lazy collection, we will issue a select by FK rather than a select with a 
> join.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to