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: Clarifications on fetch depth
Date Thu, 15 Dec 2005 23:02:34 GMT
Sorry that was meant to go to Marko only, please excuse German being 
used here...

Jörg von Frantzius schrieb:
> Hallo Marko,
>
> von Alexander habe ich vorhin gehört, daß Ihr Detaching ebenfalls zum 
> Synchronisieren von Datenbanken benutzt. Das tue ich ebenfalls, und es 
> funktioniert prima mit dem aktuellen Stand der Spezifikation und von 
> JPOX. Und vor allem funktioniert es, ohne daß mein Code wissen muß, 
> welche Klasse ein Objekt hat, und mit ein und dem selben 
> Fetch-Group-Namen, mit dem für alle Klassen eine Fetch-Group definiert 
> ist.
>
> Bitte erkläre mir mal, wie ich ein beliebiges Objekt mit genau Tiefe 1 
> detachen kann (also das Objekt selbst, und alles was von diesem direkt 
> erreichbar ist), wenn ich keine Fetch-Depth für *alle* Felder 
> definieren kann?
>
> Wir können deswegen gerne mal morgen telefonieren, dann gibt's da 
> glaube ich weniger Mißverständnisse. Meine Telefonnummer findest Du 
> unten.
>
> Grüße,
> Jörg
>
> Grüße,
> J-rg
>
> Marco Schulze schrieb:
>> Alexander Bieber wrote:
>>
>>> In my oppinion it would be better to change the spec back to its 
>>> previous version, so that fetch-depth applies only to 
>>> self-referencing (=recursive) fields (direct _and_ indirect). A hard 
>>> limit could be set on detachCopy with an additional parameter 
>>> detachDepth that will apply to the object graph of the top-level 
>>> object that is detached.
>>
>> Hello all!
>>
>> I totally agree that the new behaviour not only makes life more 
>> complicated, but implies design problems as well, and that a change 
>> back to the old behaviour would be very helpful. But instead of a new 
>> parameter for the detachCopy method, I'd like to mention a possible 
>> alternative: a getter-setter-pair for the fetchplan:
>>
>>    PersistenceManager.getFetchPlan().getMaxFetchDepth();
>>    PersistenceManager.getFetchPlan().setMaxFetchDepth(mfd);
>>
>> This maximum fetch-depth should be relative to the root of the object 
>> graph, while the fetch-depth declared per field only applies to 
>> relative self-referencing - i.e. recursion (= old behaviour).
>>
>> IMHO both, detachCopy derivate or fetchplan property, are adequate. 
>> But the new behaviour of fetch-groups is not logical, because the 
>> definition of a fetch-group happens per field/class while its effects 
>> depend on the use-case. IMHO, parameters that apply to the use-case 
>> should be defined runtime (i.e. parameter/getter-setter) while static 
>> definitions should be usecase-independent. I hope, you understand 
>> what I mean...
>>
>> Any other opinions?
>>
>> Best regards, Marco.
>>
>>
>
>


-- 
__________________________________________________________
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
_______________________________|__________________________


Mime
View raw message