Hi Dale,

I don't know if you've been watching this thread but Mike Horowitz helped me
solve my problem(s). And the solution to one of the problems (how to delete
all elements from a Collection) was exactly what you suggest in your last
post, namely call clear() on the Set. It works perfectly, thanks for the
help!

I plan on writing up a tutorial for this scenario - ManyToMany implemented
using 2 OneToMany relations to a custom Model Object. I think it must be a
pretty common scenario - a Join table with attributes - and is tricky to get
right in terms of mappings / Annotations, PropertyEditor, etc.

I'll let the list know when it's up.

Cheers,
Bob


DNewfield wrote:
> 
> syg6 wrote:
>> 1. Load ObjectA from database (to get existing ObjectB Collection).
>> 2. Use ObjectBManager to get() each ObjectB
> 
> Huh?  Shouldn't ObjectA contain a collection of ObjectBs?  Why do you 
> need to to some other source for these objects?  When I mentioned 
> manipulating the collection contained in ObjectA carefully I was 
> explicitly talking about the collection object, not the ObjectBs 
> contained within it.
> 
>> 3. Use ObjectBManager to remove() each ObjectB
>> 4. Call ObjectAManager.save()
> 
> If ObjectA contains a collection that references ObjectBs that have been 
> deleted, then your ObjectA is in an invalid state.  You shouldn't remove 
> an ObjectB from the DB without first removing it from every collection 
> it is in.
> 
>> objectA.setObjectBs(null) I get a 'A collection with
>> cascade="all-delete-orphan" was no longer referenced by the owning entity
>> instance' error.
> 
> Right--that's specifically complaining about the collection, which is 
> managed by Hibernate so that it can figure out which entries are no 
> longer present so it can detect orphans.  Try replacing 
> "objectA.setObjectBs(null)" with
> 
> if (objectA.getObjectBs() != null) {
>    List<ObjectB> asListOfBs = objectA.getObjectBs();
>    asListOfBs.clear();
>    objectA.setObjectBs(asListOfBs);
> }
> 
> -Dale
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Many-to-many-collection-problem-tf4670322s2369.html#a13544765
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to