db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthew T. Adams" <matthewad...@yahoo.com>
Subject Re: [VOTE] Add convenience methods deleteObjectById
Date Tue, 13 Mar 2007 16:32:30 GMT
[ x ] Proposal C (do nothing)

If deleteByObjectId(Object oid) is nothing more than getting the object by id with validate
== false and then calling deletePersistent, then the deleteByObjectIid methods are of little
value.

----- Original Message ----
From: Craig L Russell <Craig.Russell@sun.com>
Cc: Apache JDO project <jdo-dev@db.apache.org>; JDO Expert Group <jdo-experts-ext@sun.com>
Sent: Thursday, March 8, 2007 7:15:34 PM
Subject: Re: [VOTE] Add convenience methods deleteObjectById

Although I like the idea, the details trouble me. We need to specify the behavior in case
the instance exists or not, and whether the instance is able to be deleted (e.g. there is
a foreign key violation or some locking issue). Another issue is whether the delete is required
to be immediate or delayed until commit.

It's possible for the application to do a getObjectsById with the validate parameter set to
the developer's choice and then to delete the instances returned. With validate set to false,
this would be as efficient as the proposed deleteObjectsById. So the value for the developer
is not as compelling as the other APIs that we've added recently.


Craig

On Mar 8, 2007, at 7:08 PM, Craig L Russell wrote:

Please vote for 

[ ] Proposal A void deleteObjectById
[ ] Proposal B long deleteObjectById
[ ] Proposal C (do nothing)


This vote will close Monday 12-Mar-2007.


Please see https://issues.apache.org/jira/browse/JDO-469

I'd like to discuss adding the methods to PersistenceManager:

Both Proposals A and B follow the basic rules of deletePersistent, with differences if the
object identified by the oid is not persistent.


Proposal A 


proposed by Matthew Adams:
void deleteObjectById(Class cls, Object key); void deleteObjectById(Object oid); 
void deleteObjectsById(Collection oids); 
void deleteObjectsById(Object[] oids); 


With proposal A, any object that cannot be deleted would throw an exception similar to what
is done with deletePersistent.


Proposal B


I think we might want to allow for the possibility that it was not possible to delete all
the requested items, so add a return value with the number of objects actually deleted:
long deleteObjectById(Class cls, Object key); long deleteObjectById(Object oid); 
long deleteObjectsById(Collection oids); 
long deleteObjectsById(Object[ ] oids); 


Proposal C


do nothing


Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
  






 Craig Russell
 Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
 408 276-5638 mailto:Craig.Russell@sun.com
 P.S. A good JDO? O, Gasp!
  






Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message