Please see this message posted on the openjpa list:
http://n2.nabble.com/Fetch-Group-questions-tc534861.html

One of the comments is particularly relevant to JDO:
2.
http://openjpa.apache.org/docs/latest/manual/manual.html#ref_guide_fetch_impl
says that "Even when a direct relation is not eagerly fetched,
OpenJPA selects the foreign key columns and caches the values. This way
when you do traverse the relation, OpenJPA can often find the related
object in its cache, or at least avoid joins when loading the related
object from the database." - that's very kind, but may be we have an
Entity with lots of foreign key columns and I KNOW I only want a list
showing a few attributes, and I KNOW that the direct relations won't be
traversed (say because the Entites are detached, may be). Is there any
way to configure OpenJPA to NOT eagerly fetch direct relations, unless
they are explicitly part of the Fetch Group? Actually what I'd want is
to be able to by default not include foreign key columns, but have a way
to explicitly include them - which is not the same as having the field
as part of the FetchGroup (that will lead to a JOIN, I may just want to
control whether or not to selects the foreign key column).

Currently we don't have the notion in JDO of fetching key values of relationships, just fetching the targets of these keys.

Would it be useful to consider adding to the JDO specification the ability to specify fetching the keys for relationships and not the relationships themselves? This would probably include adding some metadata to fetch-group and to FetchGroup.

One thing to kick around, is changing the meaning of recursion- depth==0 so changing:

-1 recurse indefinitely
1 just fetch the target of this field
n fetch the target and recurse n times
0 just fetch the identifier (foreign key value) for the field but not the field itself

This is a "spare bit" that is currently not particularly useful, since the specified behavior is identical if "the member is not specified in the FetchGroup" and "the member is specified with a recursion-depth of 0".

Craig

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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to