hi again,
I think this is indeed the reason. In my log files those selects almost
always occur right after prefetch queries. And in the few cases they
don't, it may just be that there was no non-null FK to prefetch.
Method ReferencePrefetcher#buildPrefetchQueries already checks for isNull(fkValues) so
#associateBatched should probably do the same.
Gerhard
Jakob Braeuchi <[EMAIL PROTECTED]>
15.10.2003 17:17
Bitte antworten an "OJB Users List"
An: OJB Users List <[EMAIL PROTECTED]>
Kopie:
Thema: Re: Antwort: RE: How to map optional 1:1 relationship
hi carl,gerhard,
your right, fkValues may be null and thus a query will be fired.
can you confirm this gerhard ?
jakob
Boyes, Carl wrote:
> Hi Jakob, Gerhard
>
> In ReferencePrefetcher#associateBatched:
>
> ...
> while (iter.hasNext())
> {
> owner = iter.next();
> fkValues = ord.getForeignKeyValues(owner,cld);
> id = new Identity(null, topLevelClass, fkValues);
> relatedObject = pb.getObjectByIdentity(id);
> field.set(owner, relatedObject);
> }
> ...
>
> Should this also be ensuring a non null foreign key value?
>
> Carl.
>
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, October 15, 2003 3:59 PM
> To: OJB Users List
> Subject: Re: Antwort: RE: How to map optional 1:1 relationship
>
>
> Hi Jakob,
>
> I just checked and you are right.
>
> Nevertheless I find a lot of statements like SELECT ... FROM ... WHERE
> id='' in my P6Spy logs, where id is a not nullable primary key. I was
> assuming these were generated from resolving references with FK=null,
but
> it turns out this is wrong. Looks like I'll have to do a little more
> research to find the reason for these selects...
>
> Regards,
> Gerhard
>
>
>
>
>
> Jakob Braeuchi <[EMAIL PROTECTED]>
> 15.10.2003 16:10
> Bitte antworten an "OJB Users List"
>
>
> An: OJB Users List <[EMAIL PROTECTED]>
> Kopie:
> Thema: Re: Antwort: RE: How to map optional 1:1 relationship
>
>
> hi gerhard,
>
> imo this is already implemented. see
> PersistenceBrokerImpl#getReferencedObject:
>
> ...
> // BRJ: check if we have non null pk values
> // TBD we should also check primitives
> // to avoid creation of unmaterializable proxies
> for (int i = 0; i < pkVals.length; i++)
> {
> if (pkVals[i] != null)
> {
> allPkNull = false;
> break;
> }
> }
> // BRJ: if all pk values are null there's no referenced object
> if (allPkNull)
> {
> return null;
> }
> ...
>
>
> The contents of this email are confidential to the intended recipient at
the email address to which it has been addressed. It may not be disclosed
to or used by anyone other than this addressee, nor may it be copied in
any way. If received in error, please contact DLA, a UK law firm,
(http://www.dla.com/) on +44 (0) 8700 111111 quoting the name of the sender and the
addressee
and then delete it from your system.
>
> Please note that neither DLA nor the sender accepts any responsibility
for viruses and it is your responsibility to scan the email and
attachments (if any). No contracts may be concluded on behalf of DLA by
means of email communications.
>
> A list of the names of the partners of DLA (who are either solicitors or
registered foreign lawyers) and their qualifications is available for
inspection at 3 Noble Street, London, EC2V 7EE, UK.
>
> Regulated by the Law Society.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]