Hi Phil, What do you mean about "indirection" table?
Thank you Sylvain -----Message d'origine----- De: Phil Warrick [mailto:[EMAIL PROTECTED]] Date: lundi, 16. d�cembre 2002 17:29 �: OJB Users List Objet: Re: OJB and recursive relationship Sylvain, > Phil, > > What OJB doesn't support exactly? > Sorry I was thinking about another (related) OJB limitation: M:N relations can use an indirection table but 1:N relations cannot. In your case for a reference you just need one more A field in the class and table: Class A { int A_id int qualifiedARefId String name QualifiedARef qualifiedARef } Table A int A_id_PK int QUALIFIEDAREFID String NAME <class-descriptor class="A" table="A" > <field-descriptor id="1" name="A_id" column="A_ID_PK" jdbc-type="INTEGER" primarykey="true" autoincrement="true" /> <field-descriptor id="2" name="qualifiedARefId" column="QUALIFIEDAREFID" jdbc-type="INTEGER" /> <field-descriptor id="2" name="name" column="NAME" jdbc-type="VARCHAR" /> <reference-descriptor name="qualifiedARef" class-ref="QualifiedARef" > <foreignkey field-id-ref="2"/> </reference-descriptor> </class-descriptor> Phil [EMAIL PROTECTED] wrote: > Sylvain > > -----Message d'origine----- > De: Phil Warrick [mailto:[EMAIL PROTECTED]] > Date: lundi, 16. d�cembre 2002 17:11 > Cc: OJB Users List > Objet: Re: OJB and recursive relationship > > > Sylvain, > > Actually my example wouldn't work for a reference (it needs access to > the indirection table "QualifiedARef" and OJB doesn't support this yet > AFAIK). A collection in the A class descriptor should work though: > > <collection-descriptor > name="qualifiedARefs" > element-class-ref="QualifiedARef" > auto-retrieve="true" > auto-update="false" > indirection-table="QualifiedARef" > > > <fk-pointing-to-this-class column="QUALIFIEDAREF_PK"/> > <fk-pointing-to-element-class column="A_ID_FK"/> > </collection-descriptor> > > Phil > > Phil Warrick wrote: > >>Sylvain, >> >>Something like this? >> >><class-descriptor >> class="A" >> table="A" >> > >> <field-descriptor id="1" >> name="A_id" >> column="A_ID_PK" >> jdbc-type="INTEGER" >> primarykey="true" >> autoincrement="true" >> /> >> <field-descriptor id="2" >> name="name" >> column="NAME" >> jdbc-type="VARCHAR" >> /> >> <reference-descriptor >> name="qualifiedARef" >> class-ref="QualifiedARef" >> > >> <foreignkey field-id-ref="4"/> >> </reference-descriptor> >></class-descriptor> >> >><class-descriptor >> class="QualifiedARef" >> table="QualifiedARef" >> > >> <field-descriptor id="1" >> name="qualifiedId" >> column="QUALIFIEDAREF_PK" >> jdbc-type="INTEGER" >> primarykey="true" >> autoincrement="true" >> /> >> <field-descriptor id="2" >> name="A_id" >> column="A_ID_FK" >> jdbc-type="INTEGER" >> /> >> <field-descriptor id="3" >> name="relationInfo" >> column="RELATION_INFO" >> jdbc-type="VARCHAR" >> /> >> <reference-descriptor >> name="classARef" >> class-ref="A" >> > >> <foreignkey field-id-ref="2"/> >> </reference-descriptor> >></class-descriptor> >> >>Phil >> >>[EMAIL PROTECTED] wrote: >> >> >>>Phil, >>> >>>Ok but how do you do the self-reference? >>> >>>Sorry I don't understand. >>> >>>Sylvain >>> >>> >>>-----Message d'origine----- >>>De: Phil Warrick [mailto:[EMAIL PROTECTED]] >>>Date: lundi, 16. d�cembre 2002 16:43 >>>�: OJB Users List >>>Objet: Re: OJB and recursive relationship >>> >>> >>>Sylvain, >>> >>>Only one A fk is required in the QualifiedARef table: >>> >>>QualifiedARef >>>------------- >>>int qualifiedARef_PK >>>String relationInfo >>>int A_id_FK >>> >>>Phil >>> >>> >>> > >>>[EMAIL PROTECTED] wrote: >>> >>> >>>>So, more in practise: >>>> >>>>Classes: >>>> >>>>Class A { Classe QualifiedARef { >>>>int A_id int qualifiedId >>>>String name A classARef >>>>QualifiedARef qualifiedARef String relationInfo >>>>... int A_id >>>>} .... >>>> } >>>> >>>> >>>>Relationnal tables: >>>> >>>>A QualifiedARef >>>>- ------------- >>>>int A_id_PK int qualifiedARef_PK >>>>String name int A_id_class_ref_FK >>>> String relationInfo >>>> int A_id_FK >>>> >>>> >>>>Am I on the right way? >>>>is there a probem in the QualifiedARef table because there are 2 FK >>>>for A?? >>>> >>>>Thank you >>>>Regards >>>>Sylvain >>>> >>>> >>>> >>>> >>>>-----Message d'origine----- >>>>De: Phil Warrick [mailto:[EMAIL PROTECTED]] >>>>Date: lundi, 16. d�cembre 2002 15:59 >>>>�: OJB Users List >>>>Objet: Re: OJB and recursive relationship >>>> >>>> >>>>Hi Sylvain, >>>> >>>>Yes, then class A instead has a reference to a class QualifiedARef >>>>(or a collection of these). QualifiedARef holds the relation info >>>>and a reference to the target A. If bidirectionality is important, >>>>it can hold a reference to both of the As in the relation. >>>> >>>>Phil >>>> >>>>[EMAIL PROTECTED] wrote: >>>> >>>> >>>> >>>>>Hi Phil, >>>>> >>>>>Thank you for your answer. >>>>>Is it also possible if you qualified this self reference (add >>>>>information about relation)? >>>>> >>>>>For example if class A have a reference to another instance of class >>>>>A and this reference has information like reference_name or >>>>>something like that. >>>>> >>>>>Regards >>>>>Sylvain >>>>> >>>>>-----Message d'origine----- >>>>>De: Phil Warrick [mailto:[EMAIL PROTECTED]] >>>>>Date: lundi, 16. d�cembre 2002 15:14 >>>>>�: OJB Users List >>>>>Objet: Re: OJB and recursive relationship >>>>> >>>>> >>>>>Hi Sylvain, >>>>> >>>>>OJB handles self references fine. In other words class A can have a >>>>>reference to another instance of class A or a collection of class >>>>>As. You may need to make these proxies if the graph is very large >>>>>and you need to control the hits to the db. >>>>> >>>>>Phil >>>>> >>>>>[EMAIL PROTECTED] wrote: >>>>> >>>>> >>>>> >>>>> >>>>>>Hello, >>>>>> >>>>>>I have a situation with recursive relationship: >>>>>> >>>>>>I have a class Software that represents the softwares that could be >>>>>>installed on my machine. Some of these softwares must have other >>>>>>softwares installed before to be able to be installed. >>>>>>So, I have a recurvive relationship here. >>>>>> >>>>>>How do you implement this relationship with OJB? >>>>>> >>>>>>Thank you >>>>>>Sylvain >>>>>> >>>>>>-- >>>>>>To unsubscribe, e-mail: >>>>>><mailto:[EMAIL PROTECTED]> >>>>>>For additional commands, e-mail: >>>>>><mailto:[EMAIL PROTECTED]> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>-- >>>>>To unsubscribe, e-mail: >>>>><mailto:[EMAIL PROTECTED]> >>>>>For additional commands, e-mail: >>>>><mailto:[EMAIL PROTECTED]> >>>>> >>>>> >>>>>-- >>>>>To unsubscribe, e-mail: >>>>><mailto:[EMAIL PROTECTED]> >>>>>For additional commands, e-mail: >>>>><mailto:[EMAIL PROTECTED]> >>>> >>>> >>>> >>>> >>>> >>>>-- >>>>To unsubscribe, e-mail: >>>><mailto:[EMAIL PROTECTED]> >>>>For additional commands, e-mail: >>>><mailto:[EMAIL PROTECTED]> >>>> >>>> >>>>-- >>>>To unsubscribe, e-mail: >>>><mailto:[EMAIL PROTECTED]> >>>>For additional commands, e-mail: >>>><mailto:[EMAIL PROTECTED]> >>> >>> >>> >>> >>> >>>-- >>>To unsubscribe, e-mail: >>><mailto:[EMAIL PROTECTED]> >>>For additional commands, e-mail: >>><mailto:[EMAIL PROTECTED]> >>> >>> >>>-- >>>To unsubscribe, e-mail: >>><mailto:[EMAIL PROTECTED]> >>>For additional commands, e-mail: >>><mailto:[EMAIL PROTECTED]> >> >> > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
