Heck, I would love to know a guess on when the darned spec will be available! The
sooner the better!
Jim
--On Friday, February 23, 2001 9:15 AM -0500 Michael A Third <[EMAIL PROTECTED]> wrote:
>
> 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
>>
>>
>>
>
********************************************
I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I -
I took the one less traveled by,
And that has made all the difference.
- Robert Frost, 1916