user manual

164 BES Developers Guide
Container-Managed Persistence in Borland Enterprise Server
</column-list>
</left-table>
<cross-table>
<table-name>EMPLOYEE_PROJECTS</table-name>
<column-list>
<column-name>EMP_NAME</column-name>
<column-name>PROJ_ID</column-name>
</column-list>
<column-list>
<column-name>PROJ_ID</column-name>
<column-name>PROJ_NAME</column-name>
</column-list>
</cross-table>
<right-table>
<table-name>PROJECT</table-name>
<column-list>
<column-name>PROJ_ID</column-name>
<column-name>PROJ_NAME</column-name>
<column-name>EMP_NO</column-name>
</column-list>
</right-table>
</table-ref>
Since these are "secondary tables" and therefore have no primary keys, the
PROJ_ID column appears in both column lists. This could also be the common
column EMP_NO, depending upon how you wish to model the data.
Using cascade delete and database cascade delete
Use <cascade-delete> when you want to remove entity bean objects. When
cascade delete is specified for an object, the container automatically deletes
all of that object's dependent objects. For example you may have a Customer
bean which has a one-to-many, uni-directional relationship to an Address
bean. Because an address instance must be associated to a customer, the
container automatically deletes all addresses related to the customer when
you delete the customer.
To specify cascade delete, use the <cascade-delete> element in the ejb-
jar.xml file as follows:
<ejb-relation>
<ejb-relation-name>Customer-Account</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Account-Has-Customer
</ejb-relationship-role-name>
<multiplicity>one</multiplicity>
<cascade-delete/>
</ejb-relationship-role>
</ejb-relation>