As always, relationships problems
hvenstrom Nov 21, 2002 6:21 AMI am developing a enterprise server application, manly by taking availibal shareware components and adjust them for my need.
The strategy worked just fine.... until I run across the CMR and the relationships that need to be defined in the jbosscmp-jdbc file.
I should add that the application works on the RI, so my problem is JBoss config specific.
I am stuck on the following problem:
I have defined the rel. in the jbosscmp-jdbc.xml as following:
<jbosscmp-jdbc>
java:/MySqlDS
<datasource-mapping>mySQL</datasource-mapping>
<create-table>true</create-table>
<remove-table>true</remove-table>
<read-only>false</read-only>
<time-out>300</time-out>
<pk-constraint>true</pk-constraint>
<fk-constraint>false</fk-constraint>
<row-locking>false</row-locking>
<preferred-relation-mapping>foreign-key</preferred-relation-mapping>
<enterprise-beans>
<ejb-name>MyContactEJB</ejb-name>
<jndi-name>MyContactEJB</jndi-name>
<ior-security-config>
<transport-config>
supported
supported
<establish-trust-in-target>supported</establish-trust-in-target>
<establish-trust-in-client>supported</establish-trust-in-client>
</transport-config>
<as-context>
<auth-method></auth-method>
</as-context>
<sas-context>
<caller-propagation>supported</caller-propagation>
</sas-context>
</ior-security-config>
<ejb-ref>
<ejb-ref-name>AddressEJB</ejb-ref-name>
<jndi-name>AddressEJB</jndi-name>
</ejb-ref>
<gen-classes />
<ejb20-cmp>
<sql-statement>
.
.
.
.
</ejb20-cmp>
.
.
.
.
<ejb-relation>
<ejb-relation-name>MyAdd</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>MyContactEJB</ejb-relationship-role-name>
<key-fields>
<key-field>address</key-field>
</key-fields>
<read-ahead>on-load</read-ahead>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>AddressEJB</ejb-relationship-role-name>
<key-fields/>
<read-ahead>on-load</read-ahead>
</ejb-relationship-role>
</ejb-relation>
An in the ejb-jar.xml:
<ejb-relation>
<ejb-relation-name>MyAdd</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>MyContactEJB</ejb-relationship-role-name>
One
<relationship-role-source>
<ejb-name>MyContactEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>address</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>AddressEJB</ejb-relationship-role-name>
One
<cascade-delete />
<relationship-role-source>
<ejb-name>AddressEJB</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
I have spent a week on this now without making any progress, it seems like Jboss ignor all my efforts in this eara and only
replay this warning:
2002-11-20 22:51:10,743 WARN [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:jndiName=local/MyContactEJB,service=EJB
org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=MyAdd.
For the cases where I do not have any relationships between the EJBs everything works fine and the tables are created, so it is only on this..relationships!!!
If anyone has any light to shed on this....pleace