I'm not sure if this is a bug or not.
I have two entity beans with a 1:m relationship. For some reason I cannot get the
tags to generate the correct data in the weblogic-cmp-rdbms-jar.xml file.
The tags are generated correct in the ejb-jar.xml.
in the 1 side of the relationship I have the following.
/**
* getEventDefinitions
* Returns a collection of items (via its Local interface)
* @ejb.interface-method view-type="local"
* @ejb:relation
* name="StateMachineDefinition-EventDefinition"
* role-name="StateMachineDefinition-Has-Many-EventDefinitions"
* target-ejb="EventDefinition"
* target-role-name="EventDefinition-Has-A-StateMachineDefinition"
* target-multiple="no"
* @weblogic:column-map
* foreign-key-column="state_machine_definition_id"
* key-column="event_definition_id"
*/
public abstract Collection getEventDefinitions();
/**
* @ejb.interface-method view-type="local"
*/
public abstract void setEventDefinitions(Collection edLocal);
Then on the Many Side of the relationship I have the following:
/**
* @ejb.interface-method view-type="local"
* @ejb:relation
* name="EventDefinition-StateMachineDefinition"
* role-name="EventDefinition-Has-A-StateMachineDefinition"
* target-ejb="StateMachineDefinition"
* target-role-name="StateMachineDefinition-Has-Many-EventDefinitions"
* target-multiple="yes"
* @weblogic:column-map
* key-column="state_machine_definition_id"
* foreign-key-column="event_definition_id"
* @weblogic.dbms-column
*
*/
public abstract StateMachineDefinitionLocal getStateMachineDefinition();
/**
* @ejb.interface-method view-type="local"
**/
public abstract void setStateMachineDefinition(StateMachineDefinitionLocal
smdLocal);
Here are a few problems that I run into. While EventDefinition(m) has a foreign
key(state_machine_definition_id) the StateMachineDefinition does not have a foreign
key, but xdoclet requires the foreign-key to be specified.
What ends up happening from these tags is that only one relationship role gets
generated in weblogic-cmp.rdbms-jar.xml
Something I am unsure about is if the @ejb:relation name attribute must be the same
for both beans. I have tried this but I still do not get the correct xml generated.
Here is what gets generated in the ejb-jar.xml:
<!-- Relationships -->
<relationships >
<ejb-relation >
<ejb-relation-name>EventDefinition-StateMachineDefinition</ejb-relation-name>
<ejb-relationship-role >
<ejb-relationship-role-name>EventDefinition-Has-A-StateMachineDefinition</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source >
<ejb-name>EventDefinition</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>stateMachineDefinition</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role >
<ejb-relationship-role-name>StateMachineDefinition-Has-Many-EventDefinitions</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source >
<ejb-name>StateMachineDefinition</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation >
<ejb-relation-name>StateMachineDefinition-EventDefinition</ejb-relation-name>
<ejb-relationship-role >
<ejb-relationship-role-name>StateMachineDefinition-Has-Many-EventDefinitions</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source >
<ejb-name>StateMachineDefinition</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>eventDefinitions</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role >
<ejb-relationship-role-name>EventDefinition-Has-A-StateMachineDefinition</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source >
<ejb-name>EventDefinition</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
</relationships>
Then in WEblogic=cmp-rdbs.-jar.xml I get the following:
<weblogic-rdbms-relation>
<relation-name>EventDefinition-StateMachineDefinition</relation-name>
<weblogic-relationship-role>
<relationship-role-name>EventDefinition-Has-A-StateMachineDefinition</relationship-role-name>
<column-map>
<foreign-key-column>event_definition_id</foreign-key-column>
<key-column>state_machine_definition_id</key-column>
</column-map>
</weblogic-relationship-role>
</weblogic-rdbms-relation>
<weblogic-rdbms-relation>
<relation-name>StateMachineDefinition-EventDefinition</relation-name>
<weblogic-relationship-role>
<relationship-role-name>StateMachineDefinition-Has-Many-EventDefinitions</relationship-role-name>
<column-map>
<foreign-key-column>state_machine_definition_id</foreign-key-column>
<key-column>event_definition_id</key-column>
</column-map>
</weblogic-relationship-role>
</weblogic-rdbms-relation>
>From this Weblogic generates this error, because weblogic-cmp-rdbms-jar.xml is not
>being generated correctly.
Error while reading 'META-INF/weblogic-cmp-rdbms-jar.xml'. The error was:
In relationship StateMachineDefinition-EventDefinition, the
<ejb-relationship-role>, EventDefinition-Has-A-StateMachineDefinition, defined in
ejb-jar.xml must have a corresponding <
weblogic-relationship-role> in the RDBMS CMP deployment descriptor file with the same
name.
-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community? Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user