Return-Path: X-Original-To: apmail-openjpa-dev-archive@www.apache.org Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3E0FB7628 for ; Mon, 15 Aug 2011 21:03:52 +0000 (UTC) Received: (qmail 28271 invoked by uid 500); 15 Aug 2011 21:03:52 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 28020 invoked by uid 500); 15 Aug 2011 21:03:51 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 28008 invoked by uid 99); 15 Aug 2011 21:03:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Aug 2011 21:03:50 +0000 X-ASF-Spam-Status: No, hits=-2001.1 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Aug 2011 21:03:48 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 3D7E8BE8B9 for ; Mon, 15 Aug 2011 21:03:27 +0000 (UTC) Date: Mon, 15 Aug 2011 21:03:27 +0000 (UTC) From: "Rick Curtis (JIRA)" To: dev@openjpa.apache.org Message-ID: <529568069.39550.1313442207248.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <667336011.25587.1313013927123.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Reopened] (OPENJPA-2039) FKs for EAGER fields that are not in the current fetchplan aren't selected MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/OPENJPA-2039?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rick Curtis reopened OPENJPA-2039: ---------------------------------- Reopening to address Pinaki's comments. > 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