You're exactly right. That's a one-to-many relationship, not a many-to-many relationship. You need Collections on both sides of the relationship if you want a bi-directional many-to-many relationship.
Check out chapter 7 of the O'Reilly EJB book if you want a good refresher course on CMR. - Adam > -----Original Message----- > From: Eivind Waaler [mailto:[EMAIL PROTECTED] > Sent: Friday, June 06, 2003 8:00 AM > To: [EMAIL PROTECTED] > Subject: Re: AW: [Xdoclet-user] updating a m-m value object? > > > Looks to me as if you're not defining the relationship as > many to many: > > > public abstract AlertLocal getAlert(); > > public abstract void setAlert( Collection pAlerts ); > > Should not these be: > > public abstract Collection getAlerts(); > public abstract void setAlerts(Collection pAlerts); > > Or am I totally wrong here? > > Regards > .eivind > > On Fri, 6 Jun 2003, Mick Knutson wrote: > > > I made sure the changes where what you mentioned. The > randomness seems > > to be > > gone, but each Contact can only be associated with one (1) > Alert still. > > Here is the relevant code as per your email: > > > > AlertBean: > > ========= > > /** > > * Get all Contact's for this alert. > > * > > * @ejb.interface-method > > * > > * @ejb.relation > > * name="Alert-Contact" > > * role-name="alerts-have-many-contacts" > > * target-ejb="Contact" > > * target-role-name="contact-belongs_to-many-alerts" > > * --target-multiple="yes" > > * > > * @ejb.relation-table > > * table-name="alert_contacts_rel" > > * create-table="false" > > * remove-table="false" > > * > > * @jboss.relation > > * related-pk-field="contactId" > > * fk-column="contact_id" > > * fk-constraint="false" > > * > > * @jboss.relation-mapping > > * style="relation-table" > > * > > * @ejb.value-object > > * aggregate="com.baselogic.yoursos.contact.ContactDto" > > * aggregate-name="Contact" > > * match="normal" > > * members="com.baselogic.yoursos.contact.ContactLocal" > > * members-name="Contact" > > * type="Collection" > > * relation="external" > > */ > > public abstract Collection getContacts(); > > public abstract void setContacts( Collection pContacts ); > > > > > > ContactBean: > > =========== > > /** > > * Get the User for this Contact > > * > > * @ejb.interface-method > > * > > * @ejb.relation > > * name="Alert-Contact" > > * role-name="contact-belongs_to-many-alerts" > > * target-ejb="Alert" > > * target-role-name="alerts-have-many-contacts" > > * --target-multiple="yes" > > * > > * @ejb.relation-table > > * table-name="alert_contacts_rel" > > * create-table="false" > > * remove-table="false" > > * > > * @jboss.relation > > * related-pk-field="alertId" > > * fk-column="alert_id" > > * fk-constraint="false" > > * > > * @jboss.relation-mapping > > * style="relation-table" > > **/ > > public abstract AlertLocal getAlert(); > > public abstract void setAlert( Collection pAlerts ); > > > > > > Thanks in advance for your help.... > > > > > > > > --- > > Thanks... > > Mick Knutson > > --- > > > > > > > > > > > > >From: "Ingo Bruell" <[EMAIL PROTECTED]> > > >Reply-To: [EMAIL PROTECTED] > > >To: [EMAIL PROTECTED] > > >Subject: AW: [Xdoclet-user] updating a m-m value object? > > >Date: Fri, 6 Jun 2003 11:14:10 +0200 > > > > > >-----BEGIN PGP SIGNED MESSAGE----- > > >Hash: SHA1 > > > > > >Hi, > > > > > > > When I then edit AlertB and select ContactA and ContactB in the > > >multi-select > > > > form element, I get the 2 rows that _were_ created for > AlertA, and > > >replace > > > > them with a row for ContactA and ContactB associating > to AlertB. > > > > So > > >AlertA > > > > does not have any Contacts associated with it anymore. So, it > > > > seems that I can only have a given Contact, associated with one > > >(1) > > > > Alert at a time. Not multiple. But I have > target-multiple="true" > > > > set for > > >the > > > > get/set Contact method on the AlertBean. > > > > > >It looks like you have not defined a m:n relation. Both sides must > > >have a relation of type Collection. So there is no need to set > > >target-multiply="yes". The setter Methode also needs a > parameter of > > >type Collection > > > > > > > > >best regards > > > > > >Ingo Bruell > > > > > >- - --- > > ><[EMAIL PROTECTED]> > > ><ICQ# 40377720> > > >Oldenburg PGP-Fingerprint: CB01 AE12 B359 87C4 BF1C 953C > 8FE7 C648 > > >169E > > >E5FC > > >Germany PGP-Public-Key available at pgpkeys.mit.edu > > > > > >-----BEGIN PGP SIGNATURE----- > > >Version: PGPfreeware 6.5.8 for non-commercial use > > ><http://www.pgp.com> > > > > > >iQA/AwUBPuBNTo/nxkgWnuX8EQJDwwCcCSev3HEMO9aWeyD/ZInwHgc+/fgAnRd9 > > >uS4DtjuI5Y+zgZhiwSGllwF/ > > >=JR4R > > >-----END PGP SIGNATURE----- > > > > > > > > > > > > > > >------------------------------------------------------- > > >This SF.net email is sponsored by: Etnus, makers of > TotalView, The > > >best thread debugger on the planet. Designed with thread debugging > > >features you've never dreamed of, try TotalView 6 free at > > >www.etnus.com. _______________________________________________ > > >xdoclet-user mailing list > > >[EMAIL PROTECTED] > > >https://lists.sourceforge.net/lists/listinfo/xdoclet-user > > > > _________________________________________________________________ > > The new MSN 8: smart spam protection and 2 months FREE* > > http://join.msn.com/?page=features/junkmail > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Etnus, makers of TotalView, The > > best thread debugger on the planet. Designed with thread debugging > > features you've never dreamed of, try TotalView 6 free at > > www.etnus.com. _______________________________________________ > > xdoclet-user mailing list > > [EMAIL PROTECTED] > > https://lists.sourceforge.net/lists/listinfo/xdoclet-user > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of > TotalView, The best thread debugger on the planet. Designed > with thread debugging features you've never dreamed of, try > TotalView 6 free at www.etnus.com. > _______________________________________________ > xdoclet-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/xdoclet-user > ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user
