openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pinaki Poddar (JIRA)" <>
Subject [jira] Resolved: (OPENJPA-704) FetchPlan should be able to add fields by both declaring and defining class as owner
Date Thu, 18 Sep 2008 17:00:44 GMT


Pinaki Poddar resolved OPENJPA-704.

    Resolution: Fixed

This original issue has been fixed as confirmed by the end user. Subsequently another 'unsupported'
case was presented in the Nabble forum on the same discussion thread[1].

A fix for the newly reported case had also been committed against this issue, but not yet
confirmed by the end user.
However, marking this issue as resolved and will open a new one for the other case, in case
the latest fix 696590 proves ineffective.   

> FetchPlan should be able to add fields by both declaring and defining class as owner
> ------------------------------------------------------------------------------------
>                 Key: OPENJPA-704
>                 URL:
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: kernel
>            Reporter: Pinaki Poddar
>            Assignee: Pinaki Poddar
>             Fix For: 1.3.0
> A field f can be added to FetchPlan via
> FetchPlan.addField(String name);
> FetchPlan.addField(Class c, String fieldName);
> At runtime, whether the field f is included in a fetch subgraph is verified by its fully-qualified
name which considers its declaring class. This limits the following usage as originally reported
by Michael Vorburger in [1]
> abstract class Base { String code; }
> @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
> class A extends Base { B b; }
> @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
> class B extends Base { }
> With the above entity model, there is no existing means to include {A.b, A.b.code} and
exclude {A.code} from being fetched using addField() mechanism. Because a plan
> fetchPlan.addField(A.class, "b");
> fetchPlan.addField(B.class, "code");
> will result in checking for field whose fully-qualified name of 'Base.code' and will
not include A.b.code.
> Instead if the plan is defined as
> fetchPlan.addField(A.class, "b");
> fetchPlan.addField(Base.class, "code");
> The resultant fetch will include  {A.code, A.b, A.b.code} i.e. 'code' field from both
A and B. 
> [1]

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

View raw message