cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Delete Rules: Cascade with Deny on reverse relationship
Date Fri, 28 Jul 2006 02:44:22 GMT
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?
>


Mime
View raw message