I have been trying to get Orion to correctly map a non-dependant
bidirectional 1:N relationship using EJB 2.0.  It tries to generate a
collection mapping that uses a third table to hold the reference.  I was
able to deploy it properly using a unidirectional relationship.

Here is the relevant entries from ejb-jar.xml (edited for brevity):
                <entity>
                        <ejb-name>com.trademotion.ejb.base.Marketplace</ejb-name>
                        <cmp-field><field-name>marketplaceID</field-name></cmp-field>
                        <cmp-field><field-name>name</field-name></cmp-field>
                        <cmp-field><field-name>storefronts</field-name></cmp-field>
                        <primkey-field>marketplaceID</primkey-field>
                </entity>
                <entity>
                        <ejb-name>com.trademotion.ejb.base.Storefront</ejb-name>
                        <cmp-field><field-name>storefrontID</field-name></cmp-field>
                        <cmp-field><field-name>name</field-name></cmp-field>
                        <cmp-field><field-name>marketplace</field-name></cmp-field>
                        <primkey-field>storefrontID</primkey-field>
                </entity>

        <relationships>
                <!-- 1:N (Marketplace Storefront) -->
                <ejb-relation>
                        <ejb-relation-name>Marketplace-Storefront</ejb-relation-name>

                        <ejb-relationship-role>
                                <ejb-relationship-role-name>marketplace-has-storefronts
                                </ejb-relationship-role-name>
                                <multiplicity>One</multiplicity>
                                <role-source>
                                        
<ejb-name>com.trademotion.ejb.base.Marketplace</ejb-name>
                                </role-source>
                                <cmr-field>
                                        <cmr-field-name>storefronts</cmr-field-name>
                                        
<cmr-field-type>java.util.Collection</cmr-field-type>
                                </cmr-field>
                        </ejb-relationship-role>

                        <ejb-relationship-role>
                                
<ejb-relationship-role-name>storefront-belongsto-marketplace
                                </ejb-relationship-role-name>
                                <multiplicity>Many</multiplicity>
                                <cascade-delete/>
                                <role-source>
                                        
<ejb-name>com.trademotion.ejb.base.Storefront</ejb-name>
                                </role-source>
                                <cmr-field>
                                        <cmr-field-name>marketplace</cmr-field-name>
                                        
<cmr-field-type>com.trademotion.ejb.base.Marketplace
                                        </cmr-field-type>
                                </cmr-field>
                        </ejb-relationship-role>
                </ejb-relation>

        </relationships>
Here is the generated orion-ejb-jar.xml (again, edited):
                <entity-deployment name="com.trademotion.ejb.base.Marketplace">
                        <primkey-mapping>
                                <cmp-field-mapping name="marketplaceID" persistence-
                                        name="marketplaceID" />
                        </primkey-mapping>
                        <cmp-field-mapping name="storefronts">
                                <collection-mapping
                                        
table="com_trademotion_ejb_base_Marketplace_storefronts">
                                        <primkey-mapping>
                                                <cmp-field-mapping 
name="marketplaceID" persistence-
                                                        name="marketplaceID" />
                                        </primkey-mapping>
                                        <value-mapping 
type="com.trademotion.ejb.base.Storefront">
                                                <cmp-field-mapping name="value">
                                                        <entity-ref
                                                        
home="com.trademotion.ejb.base.Storefront">
                                                                <cmp-field-mapping 
name="value"                                                                           
      persistence-name="value"
/>
                                                        </entity-ref>
                                                </cmp-field-mapping>
                                        </value-mapping>
                                </collection-mapping>
                        </cmp-field-mapping>
                </entity-deployment>

The Storefront side of relationship is generated correctly.  From previous
posts, Orion supports what I'm trying to do (btw, I'm using 1.4.7).

Thanks,

Michael A Third
Parts.com

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Robert Krueger
Sent: Thursday, February 22, 2001 1:44 PM
To: Orion-Interest
Subject: RE: No influence on CMP 2.0 getter setter methods - a feature
or abug?



>
>There seems to be some smart-ass named "Robert Krueger"
>who thinks he knows all the answers :) :) :)

I've heard of him. he must be a real pain in the ass ;).

cheers,

robert

>Thanks Robert!
>
>-tim

(-) Robert Krüger
(-) SIGNAL 7 Gesellschaft für Informationstechnologie mbH
(-) Brüder-Knauß-Str. 79 - 64285 Darmstadt,
(-) Tel: 06151 665401, Fax: 06151 665373
(-) [EMAIL PROTECTED], www.signal7.de


Reply via email to