As well, does the error happen at deployment or when you try to create a Personne? My 
guess is that it's the latter, and that JBoss is supplying the column name/value 
twice. In my beans (WL 7.0, Oracle 9.2) I map the CMR *and* an accessor for the 
foreign key as such:

  /**
   * @ejb.interface-method
   * @ejb.transaction type="Supports"
   * @ejb.persistence
>  *     column-name="user_id"
   */
  public abstract Integer getUserId ( ) ;

  /**
   */
  public abstract void setUserId ( Integer userId ) ;

  /**
   * Attaches this BuProfile to the user with the given ID.
   *
   * @param   userId    unique ID of the owning user
   */
  protected void setLocalUserId ( Integer userId )
  {
    try {
      setUser(UserUtil.getLocalHome().findByPrimaryKey(userId));
    }
    catch ( NamingException e ) {
      throw new ServiceException("Failure looking up user home object", e);
    }
    catch ( FinderException e ) {
      throw new ServiceException("Failure finding a user", e);
    }
  }

  /**
   * @ejb.interface-method
   *      view-type="local"
   * @ejb.transaction type="Supports"
   * @ejb.relation
   *      name="User-BuProfile"
   *      role-name="BuProfiles-have-a-User"
   *      cascade-delete="yes"
   * @weblogic.column-map
>  *      foreign-key-column="user_id"
   *      key-column="id"
   */
  public abstract UserLocal getUser ( ) ;

  /**
   */
  public abstract void setUser ( UserLocal user ) ;

I use setLocalUserId in ejbPostCreate to hook up the relation. This is a 
bi-directional relation (all relations in my app are a mix of bi/uni-directional 1:N), 
and in all cases I'm setting the "parent" (1) bean in the "children" (N) beans. Are 
you setting your CMR fields in ejbCreate rather than ejbPostCreate?

David Harkness
Sony Pictures Digital Networks
(310) 482-4756


-----Original Message-----
From: Adam Levine [mailto:[EMAIL PROTECTED] 
Sent: Thursday, July 24, 2003 11:41 AM
To: [EMAIL PROTECTED]
Subject: RE: [Xdoclet-user] JBoss + CMR


I'm guessing you're using JBoss.

If your tables already exist, it shouldn't be attempting to create them. If your 
tables already exist as shown, they should be fine (with the fk 
column in the phone table).

What is the exact error message you're receiving? I know Jboss will let you 
know that the table already exists, and that it won't create it -- but 
that's informational only, and not an error.

-- adam


From: "Maxime Chevalier" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: RE: [Xdoclet-user] JBoss + CMR
Date: Thu, 24 Jul 2003 19:11:54 +0200

Thanks, it helps me a lot
I decide to only use unidirectional 1-N (I have no use of bidirectional) However, I 
still have an error of my Database which tell me that I try to duplicate a column. In 
your example you use:

fk-column="person_id_fk"

And you say JBoss create the column in the Phone table.
But what if this column already exists (it's my case) ?
Is it the reason why I have my database error ? How can I go through ? I mustn't 
create a new Person table without the column to let JBoss create its own ? It would be 
curious...

Thanks by advance

        Maxime



 >Please note, the code I marked up is for a unidirectional 1:N.. and 
looking
 >back at your original post, you're using a bidirectional.. which means
 >you'll split up the relation  information across the 2 classes.    But, 
the
 >rest of the semantics should still be the same



From: "Adam Levine" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: RE: [Xdoclet-user] JBoss + CMR
Date: Thu, 24 Jul 2003 10:21:34 -0500

Each Bean should be self-contained.  It should not have any get/set references to any 
fields outside of itself.

ie:  PersonBean:   get/setPersonId,  get/setName

     PhoneBean: get/setPhoneId, get/setPhoneType, get/setPhoneNumber


Then in your person bean you'll manage a Collection of Phones

//==================== CMR =================//
    /**
     *  get the phone #s for this person
     *
     * @ejb.interface-method
     * @ejb.value-object
     *    aggregate="com.interfaces.PhoneValue"
     *    aggregate-name="Phone"
     *    members="com.interfaces.PhoneLocal"
     *    members-name="PhoneValue"
     *    relation="external"
     *   type="Collection"
     *
     * @ejb.relation
     *   name="person-to-phones"
     *   role-name="person"
     *   multiple="yes"
     *   target-role-name="phones"
     *   target-ejb="Phone"
     *
     *
     * @jboss.target-relation
     *   related-pk-field="personId"          <-- this is the field to use
from the person bean
     *   fk-column="person_id_fk"           <--  which gets put in this
column in the phone table
     *
     */
     public abstract java.util.Collection getPhones();

      /**
       [EMAIL PROTECTED]
       */
     public abstract void setPhones(java.util.Collection phones)


This will cause your tables to be automatically created as such:
Person:
    person_id, person_name
Phone:
    phone_id, phone_type, phone_number, person_id_fk


So, to relate it to SQL:
    Show all the phone #s for person whose ID is 123

select phone_number
from phone
where person_id_fk = 123

The use, or lack of, the TARGET-xxxx signifies in which direction the relation works 
-- IOW, where do you place the key, and whose key is it.

I hope that helps. I had a heck of a time working it all out when I started messing 
with Xdoclet and CMR.


-- adam



From: "Maxime Chevalier" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: RE: [Xdoclet-user] JBoss + CMR
Date: Thu, 24 Jul 2003 14:56:53 +0200

Thank you,
Indeed I'm storing the FK (called numetbper) in my table Personne. But if I don't put 
an @ejb-persistence tag, I have an error because when I create a Personne the server 
don't find the FK...

If I let the persistence tag:
It seems there is a conflict between the attributes numetbper (the FK) and 
etablissement (the CMR field) during the creation. How can I manage this

Thanks

-----Message d'origine-----
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] la part de Adam Levine Envoy� : mercredi 23 juillet 2003 
21:29 � : [EMAIL PROTECTED]
Objet : Re: [Xdoclet-user] JBoss + CMR


If you're storing the FK in your table/class, do not create/manage it with a 
@ejb-persistence tag




From: "Maxime Chevalier" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: "xdoclet" <[EMAIL PROTECTED]>
Subject: [Xdoclet-user] JBoss + CMR
Date: Wed, 23 Jul 2003 19:45:06 +0200

Hello,

I try to create CMR between 2 CMP under JBoss: Personne and Etablissement I manage to 
deploy and a simple Read-access functions well. My problem is with a Write Access. My 
DataBase returns:

   >12:25:11,808 ERROR [STDERR] javax.ejb.CreateException: Could not create
   >entity:java.sql.SQLException: ORA-00957: duplicate column name

The CMR is a 1-N relation:

in Personne:

     /**
     * @ejb.interface-method
     * @ejb.transaction
     *      type = "Required"
     *
     * @ejb.relation
     *      name = "PersonnesDansUnEtablissement"
     *      role-name = "PersonneDansUnEtablissement"
     *      target-role-name = "EtablissementADesPersonnes"
     *
     * @jboss.relation
     *      fk-column = "NUMETBPER"
     *      related-pk-field = "numetb"
     *      fk-constraint = "true"
     */

     public abstract Etablissement getEtablissement();

     /**
     * @ejb.interface-method
     */

     public abstract void setEtablissement(Etablissement etablissement);

And in Etablissement:

     public abstract java.sql.Date getDatemodetb();

      /**
      * @ejb.interface-method
      * @ejb.transaction
      *      type = "Required"
      * @ejb.relation
      *      name = "PersonnesDansUnEtablissement"
      *      role-name = "EtablissementADesPersonnes"
      *      target-role-name = "PersonneDansUnEtablissement"
      *      target-cascade-delete = "no"
      *
      */

     public abstract java.util.Collection getPersonne();

     /**
      * @ejb.interface-method
      */

     public abstract void setPersonne(java.util.Collection personne);

Does anyone have an idea of the source of the problem ?
Thanks by advance

        Maxime



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, 
E-commerce, Portals, and Forums are available now. Download today and enter to win an 
XBOX or Visual Studio .NET. 
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

_________________________________________________________________
MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. 
http://join.msn.com/?page=features/virus



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, 
E-commerce, Portals, and Forums are available now. Download today and enter to win an 
XBOX or Visual Studio .NET. 
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, 
E-commerce, Portals, and Forums are available now. Download today and enter to win an 
XBOX or Visual Studio .NET. 
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE* 
http://join.msn.com/?page=features/junkmail



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, 
E-commerce, Portals, and Forums are available now. Download today and enter to win an 
XBOX or Visual Studio .NET. 
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
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 sponsored by: Free pre-built ASP.NET sites including Data Reports, 
E-commerce, Portals, and Forums are available now. Download today and enter to win an 
XBOX or Visual Studio .NET. 
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, 
E-commerce, Portals, and Forums are available now. Download today and enter to win an 
XBOX or Visual Studio .NET. 
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*  
http://join.msn.com/?page=features/virus



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, 
E-commerce, Portals, and Forums are available now. Download today and enter to win an 
XBOX or Visual Studio .NET. 
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to