Hi Patrick. Is the field doc_id in download_pal_model actually meant to be model_id? Otherwise I am a touch confused :)
Also, I assume you've checked out the advanced O/R mapping stuff at http://db.apache.org/ojb/tutorial3.html - if not, do it now! Idea #1: For download -> model <class-descriptor class="download" table="t_download"> ... Field Descriptors ... <collection-descriptor name="models" element-class-ref="pal_model" indirection-table="t_download_pal_model" > <fk-pointing-to-this-class column="download_id"/> <fk-pointing-to-element-class column="model_id"/> </collection-descriptor> </class-descriptor> And going from model -> download... <class-descriptor class="model" table="t_model"> ... Field Descriptors ... <collection-descriptor name="downloads" element-class-ref="download" indirection-table="t_download_pal_model" > <fk-pointing-to-this-class column="model_id"/> <fk-pointing-to-element-class column="download_id"/> </collection-descriptor> </class-descriptor> Okay, that's a simple non-decomposed M:N and you probably know that already ... That doesn't really help with the single-collection issue at all. Idea #2: How about: <class-descriptor class="SupportItemI"> <extent-class class-ref="Document"/> <extent-class class-ref="Download"/> </class-descriptor> <class-descriptor class="pal_model" table="t_pal_model"> ... Field Descriptors ... <collection descriptor name="collectionOfSupportItemIs" element-class-ref="SupportItemI" indirection-table="t_pal_model_supportitems" > <fk-pointing-to-this-class column="model_id"/> <fk-pointing-to-element-class column="SupportItemID"/> </collection-descriptor> </class-descriptor> <class-descriptor class="download" table="t_download"> ... Field Descriptors ... <collection-descriptor name="models" element-class-ref="pal_model" indirection-table="t_download_pal_model" > <fk-pointing-to-this-class column="SupportItemID"/> <fk-pointing-to-element-class column="model_id"/> </collection-descriptor> </class-descriptor> You should be able to keep your object design the same and just modify the tables a bit so there is one table for both relations... Still non-decomposed :) #3: Implement pal_model_download and pal_model_document as classes, extending a common class (ModelContents). Then ... <class-descriptor class="ModelContents"> <extent-class class-ref="pal_model_download"/> <extent-class class-ref="pal_model_document"/> </class-descriptor> <class-descriptor class="pal_model" table="t_pal_model"> ... Field Descriptors ... <collection descriptor name="collectionOfSupportItemIs" element-class-ref="ModelContents" > <inverse-foreignkey field-ref="model_id"/> </collection-descriptor> </class-descriptor> <class-descriptor class="download" table="t_download"> ... Field Descriptors ... <collection-descriptor name="Models" element-class-ref="pal_model_download" > <inverse-foreignkey field-ref="download_id"/> </collection-descriptor> </class-descriptor> <class-descriptor class="pal_model_download" table="t_pal_model_download"> <field-descriptor name="model_id" ... /> <field-descriptor name="download_id" ... /> <reference-descriptor name="download" class-ref="download" > <foreignkey field-ref="download_id"/> </reference-descriptor> <reference-descriptor name="model" class-ref="model" > <foreignkey field-ref="model_id"/> </reference-descriptor> </class-descriptor> This will make the object model a bit harder, since model.collectionOfSupportItemIs will return ModelContent objects, not actual Downloads/Documents (i.e decomposed M:N) but you can keep the existing table stuff. Others may have better ideas :) Good Luck, Rob :) -----Original Message----- From: Patrick Scheuerer [mailto:[EMAIL PROTECTED] Sent: Friday, 2 January 2004 2:56 p.m. To: OJB Users List Subject: Mapping Question Hi, Please see the attached image of my data model for reference (I'm sorry for the attachment but it's kind of complicated to describe the scenario otherwise. A picture says more than a thousand words :-) ). How do I map the relationship between pal_model - download and pal_model - document? The corresponding value objects (DownloadVO and DocumentVO) both implement the Interface SupportItemI. My PalModelVO has a collection which holds all the SupportItemIs for a PalModelVO. How can I map a collection that gets it's data from two m-n relationships? Can I specify two indirection tables? Do i have to change my data model? Any comments and suggestions are welcome. I wish everybody a peaceful, prosperous and happy new year! Patrick --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
