Hi Michael,
The relevant bit of the specification is regarding jdoPostLoad.
A10.1-2 [This method is not modified by the enhancer.]
So whatever is done in jdoPostLoad, the implementation will not be
called "transparently".
But the spec doesn't require jdoPostLoad to be called if only fetch
group A is active. A better test might be to define the default fetch
group explicitly as not having the fields, and define fetch group A
as having the fields. Then you can have the default fetch group (not
fetch any fields) invoke jdoPostLoad, but test that fetch group A
fields have been loaded.
Craig
On Oct 20, 2005, at 7:41 AM, Michael Watzek wrote:
Hi,
assertion A14.6-21 specifies:
"This method retrieves the fetch plan associated with the Query. It
always returns the identical instance for the same Query instance.
Any change made to the fetch plan affects subsequent query execution."
I wonder, how the second part of this assertion can be tested. Does
the following idea make sense:
A class PC defines a fetch group A with post-load true. Class PC
defines a postLoad callback which sets a transient field for each
persistent field.
The test case creates a query instance having candidate class PC.
Afterwards, it retrieves the fetch plan, removes the default fetch
group and adds fetch group A. Then, it executes the query.
Finally, the test case checks for each returned query instance, if
the transient fields which correspond with persistent fields of
fetch group A have the right values.
Would this work, or would the persistent field access in postLoad
retrieve values from the database for non-loaded fields?
Regards,
Michael
--
-------------------------------------------------------------------
Michael Watzek [EMAIL PROTECTED] Engineering GmbH
mailto:[EMAIL PROTECTED] Buelowstr. 66
Tel.: ++49/30/235 520 36 10783 Berlin - Germany
Fax.: ++49/30/217 520 12 http://www.spree.de/
-------------------------------------------------------------------