Thanks for the reply. We were already doing this, and I realized how
repetitive it was and hoped that 1.4.7 could cut the time we spent doing
this (we have a lot of these relationships). Does anyone have a guess as to
when full EJB 2.0 support will be available?
Thanks,
Michael
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Jeff Schnitzer
Sent: Thursday, February 22, 2001 8:18 PM
To: Orion-Interest
Subject: RE: CMP 2.0 OR mapping problem
Bidirectional relationships do not yet work.
There are two workarounds that have worked for me:
Manually add (and remove!) both sides of the relationship. So your
Marketplace.addStorefront() method would look like this:
void addStorefront(Storefront front)
{
this.getStorefronts().add(front);
front.setMarketplace((Marketplace)this.ejbContext.getEJBObject());
}
etc. Alternatively you can modify your
Marketplace.getMarketplaceStorefronts() method so that instead of
obtaining the storefronts from the internal collection it runs a
findByMarketplace finder method on the StorefrontHome. Then you just
need to make sure that the storefronts->marketplace reference is kept
solid.
Jeff
>-----Original Message-----
>From: Michael A Third [mailto:[EMAIL PROTECTED]]
>Sent: Thursday, February 22, 2001 3:37 PM
>To: Orion-Interest
>Subject: CMP 2.0 OR mapping problem
>
>
>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
>
>
>