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

Reply via email to