Hi Craig,
did you get the mail to you personally where I described it? Maybe I
ended up in you spam-filter or something...
Regards,
Jörg
Craig L Russell schrieb:
Hi
Yes, I'm interested in this use-case in detail. I'm still open to an
absolute fetch-depth if there is a need for it.
Thanks,
Craig
On Jan 16, 2006, at 8:13 AM, Jörg von Frantzius wrote:
Thank you Alexander, I hadn't been watching!
Alexander Bieber schrieb:
Thanks Craig for taking our arguments into account.
I'll still have a comment concerning the use case Jörg von Frantzuis
submitted. His case is to limit the object-plan depth to a certain
level while using FetchPlan.ALL as fetch-group. This is used for
synchronizing data between datastores generically. In my oppinion we
should think of an additional and optional (defaulting to -1)
parameter to detachCopy - detachDepth - for this case.
If fetch-depth is meant to limit recursion (or if it would more
accurately be renamed to "recursion-depth", see below), then there
would be no way anymore of determining the fetch-depth absolutely
when detaching. As Alexander said, my usecase depends on that and my
code would break. If anyone is interested to know why synchronizing
two different databases in a generic way depends on that, then I'll
be happy to elaborate further.
I'd be equally happy with a fetchDepth parameter to PM.detachCopy(),
as Alexander proposes.
Best regards
Alexander Bieber
Craig L Russell wrote:
Javadogs,
I've spent some time looking at the semantics of fetch-depth and
now agree with the critics of the change that I proposed back in
the infamous October 1, 2005 message to the expert group subject:
*Re: JDO2 §12.7.2: fetch-depth only for "recursive fetch group
references"?*.
I now believe it's impractical to use fetch-depth to mean the
maximum depth of the object graph reachable from the root object(s)
field because of several messages sent on the subject by Joerg von
Frantzuis, Alexander Bieber, and Marco Schultz.
Briefly, the argument is that if fetch-depth limits the number
absolutely, then it's not possible easily to use the fetch-group to
add another field to a fetch plan simply by adding a fetch-group
that includes that field. Instead, a new fetch-group that changes
the fetch-depth must be used. And each new use-case needs to
provide a different fetch-depth number if another level of fetching
is desired.
I believe that the use of fetch-group to determine whether fields
(navigating relationships) are fetched should be natural, and that
we should therefore use fetch-depth for its original purpose of
limiting recursion.
Two remarks if we want to limit recursion:
1. It shouldn't be called "fetch-depth" but "recursion-depth",
because that's what it is then (it does not determine the actual
number of fetches!)
2. It should be clearly defined what kind of recursion is meant here,
i.e. by class or by object. I remember it being agreed that by
object is the most useful.
If you disagree with this position, please reply so we can move
forward and define the use of fetch-depth for recursion (as in the
original semantics of the attribute).
Thanks,
Craig
Craig 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!
--
__________________________________________________________
Dipl.-Inf. Jörg von Frantzius | artnology GmbH
| Milastr. 4
Tel +49 (0)30 4435 099 26 | 10437 Berlin
Fax +49 (0)30 4435 099 99 | http://www.artnology.com
_______________________________|__________________________
Craig 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!
--
__________________________________________________________
Dipl.-Inf. Jörg von Frantzius | artnology GmbH
| Milastr. 4
Tel +49 (0)30 4435 099 26 | 10437 Berlin
Fax +49 (0)30 4435 099 99 | http://www.artnology.com
_______________________________|__________________________