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
