Doesn't look like DataContextDeleteAction is smart about it:
if (relatedObjects.size() == 0) {
continue;
}
// process DENY rule first...
if (relationship.getDeleteRule() == DeleteRule.DENY) {
object.setPersistenceState(oldState);
String message = relatedObjects.size() == 1
? "1 related object"
: relatedObjects.size() + " related objects";
throw new DeleteDenyException(object,
relationship.getName(), message);
}
To handle cascade/deny combination we may need to change this code to
check that at least one object in 'relatedObjects' collection is
itself not deleted.
Andrus
On Jul 27, 2006, at 4:13 PM, Mike Kienenberger wrote:
> If I have object Department, and a to-many relationship to Employees
> marked Cascade, and then Employee has a to-manys relationship to
> Departments marked Deny, will it work if I try to delete a department?
>
> What I want to do is deny the deletion when an Employee is a member of
> multiple departments, but not when an Employee is a member only of the
> department being deleted.
>
> (This isn't really a case of Department and Employee, but it seems
> like a good analogy).
>
> Or to put it another way, does the Deny still happen if the only
> reverse-relationship value is the cascading original object to be
> deleted?
>
This archive was generated by hypermail 2.0.0 : Thu Jul 27 2006 - 22:44:43 EDT