You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by Craig L Russell <Cr...@Sun.COM> on 2008/01/12 03:26:26 UTC

[DISCUSS] Named fetch plan

Hi,

As part of the change to add fetch plan to query, we added a name to  
a fetch plan. Now we need to decide whether to expose the name via  
API. The obvious thing to do is to add a method getName() to FetchPlan.

<proposed>
12.7.5
String getName();
Return the name of the fetch plan. The default fetch plan name for  
new PersistenceManager instances is "default". The name is preserved  
if copied to a query or extent instance. If any change is made to the  
fetch plan via any add, remove, set, or clear method, the name  
changes to the empty String.

The scope for fetch plan name is global. All named fetch plans,  
whether defined in annotations or via jdo or jdoquery metadata files,  
are available to named queries.
</proposed>

We also need to add some text to the query api so that the fetch plan  
in metadata is reflected in the query api.

Here's some proposed text for query:

<proposed>
14.6
For named queries with a fetch plan specified in metadata, the fetch  
plan is the named fetch plan. If no fetch plan is specified in  
metadata, the fetch plan is a copy of the fetch plan of the  
persistence manager at the time the query instance is created.

If the named query is marked as unmodifiable in the metadata, the  
fetch plan cannot be modified.
</proposed>

There are other things we can do now that we have a name for fetch  
plans in metadata. We can push and pop fetch plans and access named  
fetch plans from metadata. But I think we should defer these topics  
to post-2.1.

Craig

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!