Oki..
The Users Table has:
user_key (primary key)
username
password
date_add
date_avail
date_expire
status_id (ref to a status_ids table 1:1)
And the MailMessages table
messageKey
subject
fromUser (Here i need to ref to 1 user in Users table 1:1)
toUsers (Here I need to have a Collection of Users 1:N)
messageType (ref to messagetypes table 1:1)
parrentmessagekey (ref to other mailmessage 1:1)
projecttaskkey (ref to projecttasks table 1:1)
text
The names is a little.....
the Users table is created by hand long ago, and the MailMessages is
created by jboss when deployed first time. its empty so no matter if i
have to drop it, but no dropping the Users table.
In the MailMessagesBean.java i have:
/**
* @ejb.interface-method
* @ejb.relation
* name="MailMessages-toUsers"
* role-name="MailMessages-Has-toUsers"
* target-ejb="Users"
* target-role-name="toUsers-belongs-to-MailMessages"
* target-cascade-delete="yes"
* @jboss.target-relation
* related-pk-field="messageKey"
* fk-column="msgKey"
* @jboss.relation-table
* table-name="MailMessages_toUsers"
*/
public abstract Collection getToUsers();
/**
* @ejb:interface-method view-type="local"
*/
public abstract void setToUsers(Collection toUsers);
when i deploy jboss doesnt create the MailMessages_toUsers table,
Xdoclet generates these deployment descriptors:
It generates <foreign-key-mapping/> in jbosscmp-jdbc.xml and not
relation-table, i even tried
@jboss.relation-mapping style="relation-table", still no relation-table
in jbosscmp-jdbc.xml
ejb-jar.xml:
<ejb-relation >
<ejb-relation-name>MailMessages-toUsers</ejb-relation-name>
<!-- unidirectional -->
<ejb-relationship-role >
<ejb-relationship-role-name>MailMessages-Has-toUsers</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source >
<ejb-name>MailMessages</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>toUsers</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role >
<ejb-relationship-role-name>toUsers-belongs_to-MailMessages</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<cascade-delete/>
<relationship-role-source >
<ejb-name>Users</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
jbosscmp-jdbc.xml:
<ejb-relation>
<ejb-relation-name>MailMessages-toUsers</ejb-relation-name>
<foreign-key-mapping/>
<ejb-relationship-role>
<ejb-relationship-role-name>MailMessages-Has-toUsers</ejb-relationship-role-name>
<key-fields>
<key-field>
<field-name>messageKey</field-name>
<column-name>msgKey</column-name>
</key-field>
</key-fields>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>toUsers-belongs_to-MailMessages</ejb-relationship-role-name>
<key-fields/>
</ejb-relationship-role>
</ejb-relation>
my build.xml has:
<localinterface/>
<homeinterface />
<localhomeinterface/>
<remoteinterface/>
<entitypk/>
<deploymentdescriptordestdir="${ejb.build.dir}/META-INF"/>
and tryed the <entitycmp/>, whats that for ??
Regards David
On Wed, 2003-10-01 at 23:25, Harkness, David wrote:
> Trying to clarify...
>
> David Nielsen <mailto:[EMAIL PROTECTED]> once said:
> > /**
> > * @ejb:interface-method
> > * @ejb:relation
> > * name="MailMessages-toUser"
> > * role-name="MailMessages-Has-toToUser"
> > * target-ejb="Users"
> > * target-role-name="toUser-belongs_to-MailMessages"
> > * target-cascade-delete="yes"
> > * @jboss:target-relation
> > * related-pk-field="messageKey"
> > * fk-column="messageKey"
> > * @jboss:relation-table
> > * table-name="MailMessages_toUsers"
> > * create-table="true"
> > * remove-table="true"
> > ...
> > jboss creates the mailmessages + the users table but no
> > mailmessages_tousers table, and there now are a column (messagekey) in
>
> > users table.
>
> This is a unidirectional 1:N relation, correct? I ask because you don't
> need a separate relation table to model 1:N -- only for N:M. And if it's
> N:M, "toUser" is actually a Collection, and the role-name would be
> "MailMessages-Have-Many-toUsers".
>
> Though this shouldn't matter, the role-name has a typo. It should be
> "MailMessages-Has-toUser", not "toToUser". Regardless, can you provide a
> bit more detail here, perhaps including the schema and a description of
> the relation itself. I'm finding it difficult to apply my intuition when
> the names don't match up with my expectations.
>
> For example, you use "MailMessages" and "Users", yet I expect that they
> actually represent single objects. A "Users" is a single user, and each
> may have zero-or-more "MailMessages"s. I realize, though, that many
> people name their DB tables with plurals (users_t vs. user_t). I just
> want to make sure so we can help you better.
>
> David Harkness
> Sr. Software Engineer
> Sony Pictures Digital Networks
> (310) 482-4756
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> xdoclet-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/xdoclet-user
>
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user