db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg von Frantzius <joerg.von.frantz...@artnology.com>
Subject Re: fetch-depth + recursion-depth
Date Mon, 19 Dec 2005 11:49:49 GMT
First off, IMHO it is absolutely useful to have a feature for 
discovering cycles in the object-graph while detaching, and stopping the 
detaching there. This is not achievable by simply applying fetch-groups 
that define some fetch-depth (at least not in any reasonable generic form),

Marco Schulze wrote:
> Now, we first imagine, we have a "recursion-depth" available. This
> "recursion-depth" is not counted relative to the absolute root of the
> object graph (like the fetch-depth), but only when the same field of the
> same class is recursively passed by the detach-process. In order to give
> the client the maximal flexibility to get object graphs shaped in
> whatever form he wants, we simply need the following fetch-groups:
> [..]
> All of these fetch-groups would be declared with fetch-depth=0 and
> recursion-depth=1.
After having thought about it for a while, I started to doubt whether we 
really need a "recursion-depth" number  here. Can you think of a case 
where you'd need any value greater than 1 here?

Also, I don't think it should really be the same field of the same class 
to be reached to count a cycle, but it should rather be just the same 
class that is reached. In the example given it's not a problem, but 
there are other thinkable object models where you'd probably fetch too 
much if you don't stop in the same class being reached again.

So I'd rather call this a boolean flag "recurse-class-cycles".

>    * Make "fetch-depth" to what I named "recursion-depth" as can
>      already be understood from the current spec. 
Craig had clarified this possible misunderstanding in his mail 'Re: JDO2 
§12.7.2: fetch-depth only for "recursive fetch group references"?'. It's 
probably going to have a different wording in the next release of the 
spec to prevent "fetch-depth" from being understood as some kind of 
> Then it would of
>      course be necessary to add a maximum fetch-depth to either the
>      detachCopy method or to the fetch plan.
I can't see why the spec should be changed for this rather than 
extended. Your requirement for a cycle-detection probably doesn't 
invalidate existing requirements for an absolute fetch-depth.

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

View raw message