When I delete objects that have collections (using indirection tables,
both 1:n or m:n) with deleteByQuery then it seems that the sub-objects are
not deleted even if I use a RemovalAwareCollection. Here is a test case
for MtoNTest that demonstrates this:
public void testDeletePaper_RemovalAware()
{
ClassDescriptor cld = broker.getClassDescriptor(Paper.class);
CollectionDescriptor cod =
cld.getCollectionDescriptorByName("qualifiers");
Class collectionClass = cod.getCollectionClass();
cod.setCollectionClass(RemovalAwareCollection.class);
try
{
Paper paper = createPaper();
List qualifiers = paper.getQualifiers();
Qualifier qual1 = (Qualifier) qualifiers.get(0);
Qualifier qual2 = (Qualifier) qualifiers.get(1);
Identity paperId = new Identity(paper, broker);
broker.beginTransaction();
broker.deleteByQuery(QueryFactory.newQuery(Paper.class,
(Criteria)null));
broker.commitTransaction();
broker.clearCache();
broker.beginTransaction();
Paper retPaper = (Paper) broker.getObjectByIdentity(paperId);
assertNull(retPaper);
Qualifier retQual1 =
(Qualifier) broker.getObjectByIdentity(new Identity(qual1, broker));
Qualifier retQual2 =
(Qualifier) broker.getObjectByIdentity(new Identity(qual2, broker));
assertNull(retQual1);
assertNull(retQual2);
broker.commitTransaction();
}
finally
{
cod.setCollectionClass(collectionClass);
}
}
Can somebody please confirm whether this is a bug or it is only me doing
something wrong ?
Tom
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]