I have multiple Categories they are independent creatures, and can be reused by many Traits.
Meaning a category can show up in any trait and have no knowledge of who is using it. The Trait knows which Category it's using. This is a unidirectional (trait knows category), with a N:1 relationship. (something like that). anyway. if i'm understanding your problem correctly, here goes:
The Category Bean only has category stuff in it. it's completely autonomous. it doesn't care about the rest of the world.
This is in the Trait bean
/** * get the associated category object * * @ejb.interface-method * @ejb.value-object * aggregate="com.interfaces.CategoryValue" * aggregate-name="Category" * members="com.interfaces.CategoryLocal" * members-name="CategoryValue" * relation="external" * @ejb.relation * name="trait-to-category" * role-name="trait" * target-ejb="Category" * target-role-name="category" * target-multiple="yes" * @jboss.relation * related-pk-field="categoryId" * fk-column="category_id_fk" * */ public abstract com.interfaces.CategoryLocal getCategory();
You'll note this is consistent with the example given to you before, save for the cascade-delete.
If you don't specify the target-multiple, what you end up with is
add one trait-> trait table: trait_id = 1, category_id_fk = 123
add a second trait with the same category-> trait table: trait_id = 1, category_id_fk = NULL trait_id = 2, category_id_fk = 123
If I understand your issue, a Model can be used by any number of Projects. Each Project has one instance of the Model. If this is the case, than your Model == my Category, and your Project == my Trait.
If this still isn't what you're after.. sorry, that's how I read your problem.
cheer!
--adam
From: Jean-philippe VIGNIEL <[EMAIL PROTECTED]> Reply-To: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: Re: [Xdoclet-user] Pb with *:1 relationship Date: Thu, 17 Jul 2003 18:24:09 +0200
Thanks for your answer but none of them solve my problem, so that, i give you further explanations about my needs, i hope you will continue to help me.
I have a class called Project and another called Model. The Model decribes a Project so there is a single and unidirectional relation from Project to Model and not an aggregation from Model to Project.
This relation is unidirectional because a model has to not know which objects use it and several Projects can be described by one Model. That why i have a n:1 and not a 1:n relation.
The ejb-jar allows to specify such a kind of relation by setting the first <multiplicity> tag to Many and the second to One. On the other hand, xdoclet allows to specify only the target multiplicity with the target-multiple tag and it seems that there is no multiple tag and no other way to describe the source multiplicity.
[EMAIL PROTECTED] wrote:
On Thu, 2003-07-17 at 13:27, Jean-philippe VIGNIEL wrote:
Hi everybody
I have to manage a n:1 relation ship between two entities, is it possible to generate the suitable ejb-jar by using the xdoclet ejb.relation tag?
I've succeeded to specify a one to one relation but the only way i found to have a n to 1 relation was to set by hand the source <multiplicity> tag to Many.
I hope i'm not alone to need such a relation.
For the case where you have Bean 1 having many Bean 2's, try this in Bean 1 for the interface method that returns a Collection
@ejb.relation name="Bean1-Bean2" role-name="Bean1-has-many-Bean2" target-ejb="Bean2" target-role-name="Bean2-belongs-to-Bean1" target-cascade-delete="yes"
If you want the accessor on Bean2 then it would be something like this in the interface method that returns an object
@ejb.relation name="Bean1-Bean2" role-name="Bean2-belongs-to-Bean1" cascade-delete="yes" target-ejb="Bean1" target-role-name="Bean1-has-many-Bean2" target-multiple="true"
Hi,
If you are defining the relationship on both entities, creating a bidirectional
relation, aren't the attributes "target-cascade-delete", "target-role-name",
"target-multiple" and "target-ejb" unnecessary? Reading the XDoclet
documentation,
http://xdoclet.sourceforge.net/tags/[EMAIL PROTECTED](0..1), those
attributes are tagged as "Should *only* occur if the relation is
unidirectional". If you define both sides of the relationship, XDoclet is smart
enough to find out the values for those attributes, so you don't need them. At
least my application works without them :).
My 2ec,
D.
-- This message was sent using Sake Mail, a web-based email tool from Endymion Corporation. http://www.endymion.com/products/sake
------------------------------------------------------------------------
On Thu, 2003-07-17 at 13:27, Jean-philippe VIGNIEL wrote:
Hi everybody
I have to manage a n:1 relation ship between two entities, is it possible to generate the suitable ejb-jar by using the xdoclet ejb.relation tag?
I've succeeded to specify a one to one relation but the only way i found to have a n to 1 relation was to set by hand the source <multiplicity> tag to Many.
I hope i'm not alone to need such a relation.
For the case where you have Bean 1 having many Bean 2's, try this in Bean 1 for the interface method that returns a Collection
@ejb.relation name="Bean1-Bean2" role-name="Bean1-has-many-Bean2" target-ejb="Bean2" target-role-name="Bean2-belongs-to-Bean1" target-cascade-delete="yes"
If you want the accessor on Bean2 then it would be something like this in the interface method that returns an object
@ejb.relation name="Bean1-Bean2" role-name="Bean2-belongs-to-Bean1" cascade-delete="yes" target-ejb="Bean1" target-role-name="Bean1-has-many-Bean2" target-multiple="true"
_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail
------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here: http://www.vmware.com/wl/offer/345/0 _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user
