You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Jakob Braeuchi <jb...@gmx.ch> on 2004/12/08 20:51:45 UTC
Re: FEATURE REQUEST : specify foreign-key-attribute to use with colle
ction descriptors instead of using primary of container class
hi roger,
imo this feature could be useful in some real life scenarios; even without an
intermediate class like Acl in your example.
but i'd prefer to extend the inverse-foreignkey (called "referencing" in the
following snippet, but this is just a temp name). if the referencing attribute
is missing we assume the pk of the element-class-ref is used.
<class-descriptor class="ibanx.doc.Document"
.....
.....
<collection-descriptor name="permissions"
element-class-ref="ibanx.security.Permission"
...
<inverse-foreignkey field-ref="aclId"
referencing="docAclId"/>
</collection-descriptor>
</class-descriptor>
jakob
Janssen, Roger schrieb:
> Hi guys, i've got a question.
>
> I am using 1.0-rc6.
>
> Currently, using a collection descriptor, you specify the inverse-foreignkey
> attribute on the items of the collection, and these attributes are matched
> with the value of the primary key of the object that contains the
> collection.
>
> However, consider the following (simplified) situation:
>
>
> Document Acl Permission
> id -----------> id <---| id
> ... | ... | ...
> ... | |------------ aclId
> aclId -----| ...
> ...
>
>
> I have an class document, containing a foreignkey reference to a class Acl,
> and i have a class permission containing a foreignkey reference to an acl.
> The class document has an attribute acl populated by OJB by using a
> reference descriptor.
> The class Acl has an collection attribute permissions collected by OJB using
> a collection descriptor.
>
> When a query for documents, using permission criteria, the query becomes
> complex, OJB joins document, acl and permission, using nested objects in
> criteria like "acl.permission.value" on a document instances.
>
> In plain sql, we could query joining document and permission on
> document.aclid = permission.aclid.
> Using OJB, this currently is not possible, because i am not able to define a
> collection descriptor on document mapping permissions.
>
> This would become possible, if we were able to specify a
> foreignkey-attribute on a collection descriptor. Example:
>
> <class-descriptor class="ibanx.doc.Document"
> .....
> .....
> <collection-descriptor name="permissions"
> element-class-ref="ibanx.security.Permission"
> auto-retrieve="false"
> auto-update="false"
> auto-delete="false">
> <inverse-foreignkey field-ref="aclId"/>
> <foreignkey field-ref="aclId"/>
> </collection-descriptor>
> </class-descriptor>
>
> This collection descriptor defines a collection of Permissions on the
> document class, using aclId of document as foreignkey, matching
> it with aclid of Permission. I can use this descriptor for querying
> purposes, and now OJB only can to join the document and permission tables
> using nested objects in criteria like "permission.value" on a document
> instance.
>
> Within our app, this kind of join pattern appears several times, sometimes
> even several times within one query, needless to say that we are
> experiencing some performance issues when the rather more complex queries
> are being executed, to a point were the application becomes not usable.
>
> I tried to look what i had to change within OJB source code myself, so i
> could deliver a patch, but i noticed the complexity of the interaction
> between CollectionDescriptor, XMLHandlers and SQL statement generators. So i
> do not really know were to start.
>
> So my question is, do you think this would be a usefull feature, and might
> it be implemented in the future.
> If it is obvious what needs to be changed, can onyone point me in the right
> direction, so i can patch the 1.0-rc6 version we are still using.
>
> thanx,
>
> Roger Janssen
> iBanx
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: FEATURE REQUEST : specify foreign-key-attribute to use with colle
ction descriptors instead of using primary of container class
Posted by Jakob Braeuchi <jb...@gmx.ch>.
hi roger,
when considering this feature we should not only focus on 1:n collections but on
any relationships. i'd prefer to introduce feature for ojb 1.1 an not try to
integrate it into 1.0.x
wdyt ?
jakob
Jakob Braeuchi schrieb:
> hi roger,
>
> imo this feature could be useful in some real life scenarios; even
> without an intermediate class like Acl in your example.
>
> but i'd prefer to extend the inverse-foreignkey (called "referencing" in
> the following snippet, but this is just a temp name). if the referencing
> attribute is missing we assume the pk of the element-class-ref is used.
>
> <class-descriptor class="ibanx.doc.Document"
> .....
> .....
> <collection-descriptor name="permissions"
> element-class-ref="ibanx.security.Permission"
> ...
> <inverse-foreignkey field-ref="aclId"
> referencing="docAclId"/>
> </collection-descriptor>
> </class-descriptor>
>
> jakob
>
> Janssen, Roger schrieb:
>
>> Hi guys, i've got a question.
>>
>> I am using 1.0-rc6.
>>
>> Currently, using a collection descriptor, you specify the
>> inverse-foreignkey
>> attribute on the items of the collection, and these attributes are
>> matched
>> with the value of the primary key of the object that contains the
>> collection.
>>
>> However, consider the following (simplified) situation:
>>
>>
>> Document Acl Permission
>> id -----------> id <---| id
>> ... | ... | ...
>> ... | |------------ aclId
>> aclId -----| ...
>> ...
>>
>>
>> I have an class document, containing a foreignkey reference to a class
>> Acl,
>> and i have a class permission containing a foreignkey reference to an
>> acl.
>> The class document has an attribute acl populated by OJB by using a
>> reference descriptor.
>> The class Acl has an collection attribute permissions collected by OJB
>> using
>> a collection descriptor.
>>
>> When a query for documents, using permission criteria, the query becomes
>> complex, OJB joins document, acl and permission, using nested objects in
>> criteria like "acl.permission.value" on a document instances.
>> In plain sql, we could query joining document and permission on
>> document.aclid = permission.aclid. Using OJB, this currently is not
>> possible, because i am not able to define a
>> collection descriptor on document mapping permissions.
>>
>> This would become possible, if we were able to specify a
>> foreignkey-attribute on a collection descriptor. Example:
>>
>> <class-descriptor class="ibanx.doc.Document"
>> .....
>> .....
>> <collection-descriptor name="permissions"
>> element-class-ref="ibanx.security.Permission"
>> auto-retrieve="false" auto-update="false"
>> auto-delete="false">
>> <inverse-foreignkey field-ref="aclId"/>
>> <foreignkey field-ref="aclId"/>
>> </collection-descriptor>
>> </class-descriptor>
>>
>> This collection descriptor defines a collection of Permissions on the
>> document class, using aclId of document as foreignkey, matching
>> it with aclid of Permission. I can use this descriptor for querying
>> purposes, and now OJB only can to join the document and permission tables
>> using nested objects in criteria like "permission.value" on a document
>> instance.
>>
>> Within our app, this kind of join pattern appears several times,
>> sometimes
>> even several times within one query, needless to say that we are
>> experiencing some performance issues when the rather more complex queries
>> are being executed, to a point were the application becomes not usable.
>>
>> I tried to look what i had to change within OJB source code myself, so i
>> could deliver a patch, but i noticed the complexity of the interaction
>> between CollectionDescriptor, XMLHandlers and SQL statement
>> generators. So i
>> do not really know were to start.
>>
>> So my question is, do you think this would be a usefull feature, and
>> might
>> it be implemented in the future.
>> If it is obvious what needs to be changed, can onyone point me in the
>> right
>> direction, so i can patch the 1.0-rc6 version we are still using.
>>
>> thanx,
>>
>> Roger Janssen
>> iBanx
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org