Hi Dan,

I agree with Evan 100%--both that your vendor should support this,
and that the best way is to allow cmp and cmr fields to reference
the same column name.

<vendor>

The MVCSoft Persistence Manager supports this, and you can
take advantage of it by checking a box in the mapping tool (or
using the XDoclet support to generate a mapping file). MVCSoft
currently provides value-added EJB 2.0 CMP for JBoss and
WebLogic, with support for additional application servers available
soon.

</vendor>

-Daniel O'Connor

On 22 Nov 2001, at 9:16, Evan Ireland wrote:

> Dan,
>
> I suggest that you talk to your vendor. The best way of dealing with this
> is in the CMP provider.
>
> <vendor>
>
> With Sybase EAServer, you can simply map your 'storeNum' and 'store' cmp and
> cmr fields to reference the same column name.
>
> </vendor>
>
> Dan Haywood wrote:
>
> > Hello all - here's a problem that has me stumped.
> >
> > In EJB 2.0 using CMP and CMR, it seems that for a PK that is composite, with one 
>part being a foreign key to a "parent" entity (in other words an identifying primary 
>key), gives rise to conflicting requirements on the bean. What's the right approach?
> >
> > For example, I have parent entity Store with a StorePK consisting of storeNum 
>field, and corresponding getStoreNum() / setStoreNum() accessor methods. I also have 
>a child entity Receipt, with a ReceiptPK of (storeNum, receiptNum), so that receipts 
>are identified by store ((1,1), (1,2) for
store #1, (2,1), (2,2) for store #2 and so on). The corresponding methods on the 
ReceiptBean are getStoreNum() / setStoreNum() and getReceiptNum() / setReceiptNum().
> >
> > Now, I want to define a bi-directional CMR between Store and Receipt, which means 
>I need a CMR method getStore() for ReceiptBean, returning a StoreLocal.
> >
> > Putting all this together, it seems the ReceiptBean must provide a getStore() and 
>a getStoreNum() method, both of which are implemented by the container. Ditto for the 
>setters. This seems horrible - there would be two columns in the underlying RDBMS 
>table. Also, it would seem that the onus is
on the bean provider to keep these two values in sync. In other words, if I create a 
new Receipt and in the ejbCreate() call setStoreNum(), I would also need to do a 
lookup of StoreLocalHome.findByPrimaryKey() to obtain the corresponding StoreLocal, 
and then call setStore().
> >
> > The alternative approach would be to define the ReceiptPK to contain a StoreLocal 
>reference, rather than a storeNumber value. Then, the methods would be the same and 
>would match. This doesn't make the ReceiptPK object transportable by a remote client, 
>however, so that feels wrong.  Indeed,
the EJB spec insists (and the J2EE RI verifier checks) that the PK must be a legal 
type for RMI-IIOP,
 so other than making the StoreLocal reference transient, this looks like it isn't a 
goer.
> >
> > Any insights gratefully received...
> >
> > ===========================================================================
> > To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> > of the message "signoff EJB-INTEREST".  For general help, send email to
> > [EMAIL PROTECTED] and include in the body of the message "help".
> >
> >
> >
> >
>
>
> --
> _______________________________________________________________________________
>
> Evan Ireland            Sybase EAServer Engineering         [EMAIL PROTECTED]
>                            Wellington, New Zealand                +64 4 934-5856
>
> ===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> of the message "signoff EJB-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to