McKinstry, Pete (HQP) wrote:
Does anyone have an example of a 1 to many relationship using a cascading
delete? I checked the unit tests briefly, but couldn't find any tests of the
cascading options. (Did i miss it?)
There are several Testcases covering this feature. In repository_junit.xml search for auto-delete="true". This will guide you to entity classes used in those testcases.
I expected the auto-delete="true" to delete the child records along w/ the
parent,
correct!
but i couldn't get it to work.
:-(
I'm wondering what i'm doing wrong.
(i don't have any cascading delete options set in the database. is this
required?)
No the OJB cascading operation does not rely on database settings.
My mapping file looks like this:
<class-descriptor class="com.rhi.reports.common.bean.ReportRequest" table="REPORT_REQUEST" schema="PETMCK01">
<field-descriptor name="requestId" column="REPORT_REQUEST_ID" jdbc-type="BIGINT"
primarykey="true" autoincrement="true" />
...
<collection-descriptor
name="statuses"
element-class-ref="com.rhi.reports.common.bean.ReportRequestStatus"
orderby="statusId"
sort="DESC"
auto-retrieve="true"
auto-update="true"
auto-delete="true"
>
<inverse-foreignkey field-ref="reportRequestId"/>
</collection-descriptor>
</class-descriptor>
looks OK!
My code looks like this:
Criteria crit = new Criteria(); crit.addEqualTo("userId", "testuser");
Query query = new QueryByCriteria(ReportRequest.class, crit); ReportRequest request = (ReportRequest)broker.getObjectByQuery(query);
are you sure that the request.statuses collection is filled at this point? If not no sttus entries will get deleted!
broker.beginTransaction(); broker.delete(request); broker.commitTransaction();
The row in the status table stays, while the referenced request is gone.
Any ideas?
The cascade delete feature worked without problems for the last two years. So I think that there may be a problem with your mapping. How does the class-descriptor for the ReportRequestStatus class look like?
cheers, Thomas
-pgm
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
