Hi Jacob,

Well, see yourself if it is a clever behavior:

Here is a simplified repository data:

<class-descriptor class="Supplier" table="SUPPLIER">
        <field-descriptor name="pkField" primarykey="true" />
        <field-descriptor name="fkField" />
        
        <collection-descriptor name="allChildren"
                element-class-ref="Supplier">
                <inverse-foreignkey field-ref="fkField">
        </collection-descriptor>

        <!-- here are types I am interested to reytrieve per parent -->
        <collection-descriptor name="allTypes"
                element-class-ref="Type">
                <inverse-foreignkey field-ref="pkField">
        </collection-descriptor>
...
</class-descriptor>

And using a ReportQuery with fields:
{"pkField","allChildren.allTypes.typeDescription"}

It generates SQL:

SELECT ... FROM SUPPLIER A0 LEFT OUTER JOIN (SUPPLIER A1 INNER JOIN
TYPES A2 ON ...) ON ...

Again I am not specifying it to do LEFT OUTER JOIN for "allChildren"
relationship or any other relationship.

It does that way when:
- there are present two relations together. In case I am retrieving just
{"pkField","allChildren.pkField"} it workes correctly.
- and both sides of relationship represent same class. When children are
located in other class it also workes correctly.

To me it is an unexpected cleverness without "legal" way to disable or
control it which is kind of frustrating...

-Sergey










-----Original Message-----
From: Jakob Braeuchi [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, January 11, 2006 1:06 PM
To: OJB Users List
Subject: Re: uses OUTER JOIN by default... --> BUG or FUNCTIONALITY ?

hi sergey,

ojb just tries to be clever ;) outer joins are created when there are 
extents etc.

could you please post the relevant parts of your mapping file and the 
generated sql.

jakob

Manukyan, Sergey schrieb:
> After some tests found out that OJB generates LEFT OUTER JOIN instead
of
> INNER JOIN in a 1:N relationship if both ends are same class.
> 
> Is that a planned functionality or a bug? 
> 
> In my case I need 1:N relationship to be made from MyClass to
Collection
> of MyClasses... How can I force then OJB to generate INNER JOIN in
that
> case?
> 
> -Sergey
> 
> 
> 
> 
> -----Original Message-----
> From: Manukyan, Sergey [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, January 10, 2006 9:00 AM
> To: OJB Users List
> Subject: uses OUTER JOIN by default...
> 
> 
> Hi,
> 
> I just moved to OJB 1.0.4. One thing I noticed is that it started
> generating OUTER JOIN although I didn't specify it to do so. In my
case
> with ReportQuery with following columns:
> 
> String[] queryColumns = new String[] {
>               "allChildren.addressLine1",
>               "allChildren.addressLine2",
>               "allChildren.addressLine4",
>               "allChildren.addressLine5",
>               "allChildren.allRequisitionTypesOfSupplier.reqType"
>               };
> 
> It generates OUTER JOIN for "allChildren" and INNER JOIN for
> "allRequisitionTypesOfSupplier" when I need only INNER JOINS.
> 
> Please advice, is it a bug or should I somehow specifically tell OJB
to
> use INNER JOIN?
> 
> Thank you,
> 
> Sergey
> 
> 
> 
> **********************
> ** LEGAL DISCLAIMER **
> **********************
> 
> This E-mail message and any attachments may contain
> 
> legally privileged, confidential or proprietary
> 
> information. If you are not the intended recipient(s),
> or the employee or agent responsible for delivery of
> 
> this message to the intended recipient(s), you are
> 
> hereby notified that any dissemination, distribution
> 
> or copying of this E-mail message is strictly
> 
> prohibited. If you have received this message in
> 
> error, please immediately notify the sender and
> 
> delete this E-mail message from your computer.
> 
> ---------------------------------------------------------------------
> 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]
> 
> 
> 

---------------------------------------------------------------------
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]

Reply via email to