Hi Mark,

I had a look to the openejb-jar DD and I think you need to drop the <foreign-key-column-on-source/> element from the Committee- CommitteeMembers relation. This optional element means that the foreign key columns declared in the following <cmr-field-mapping> elements are defined by the CMP declared by <relationship-role-source>.

So, this should work:

<ejb-relation>
  <ejb-relation-name>Committee-CommitteeMembers</ejb-relation-name>
  <ejb-relationship-role>
<ejb-relationship-role-name>Committee-has-many-CommitteeMembers</ ejb-relationship-role-name>
    <relationship-role-source>
      <ejb-name>CommitteeEntity</ejb-name>
    </relationship-role-source>
    <cmr-field>
      <cmr-field-name>committeeMembers</cmr-field-name>
    </cmr-field>
    <role-mapping>
      <cmr-field-mapping>
        <key-column>CommitteeId</key-column>
        <foreign-key-column>CommitteeId</foreign-key-column>
      </cmr-field-mapping>
    </role-mapping>
  </ejb-relationship-role>
</ejb-relation>

Also, you do not need to declare both sides of a relationship: the above is enough to declare the CMR mapping for the Committee- CommitteeMembers relation.

BTW, I strongly recommend you to upgrade to OpenEJB3: this should be a seamless migration from a CMP perspective as the OpenEJB guys have done a fantastic work at writing an OpenEJB2 schema converter.

Thanks,
Gianny

On 30/05/2007, at 1:07 AM, Mark Aufdencamp wrote:

I could really use some help on this! I have a two Entity beans with a bi-directional relationship, committees and committee_members. Committees has a single field primary key of committeeId. Committee_members has a compound primary key of CommitteeId+UserId. A Foreign Key constraint has been defined for the committee_members table based on the committeeId. I can't seem to get this to deploy and believe it's my openejb-jar.xml deployment descriptor in the <relationship> section. I've looked at examples from JBoss and Sun, so I'm fairly certain my ejb- jar.xml is correct.

Does anyone have a working example of a bi-directional relatioship where the many table has a compound key that I can take a look at?

Where can I find documentation on how OpenEJB and TranQL interact to create the O/R map?

This knowledge are really seems to be lacking documentation in Geronimo. I'd really like to draw some pretty pictures of tables and beans with the seven different relationship types defined for EJB 2.1. This would be good preliminary work for documenting EJB 3.0 examples. Please help me learn, so I can contribute:)

TIA,
Mark Aufdencamp
[EMAIL PROTECTED]

Reply via email to