On 3/5/08 11:19 AM, "Andrus Adamchik" <[EMAIL PROTECTED]> wrote:
> 1. Cayenne only guarantees that *Cayenne* will return no duplicates > for to-many. If a user explicitly wants a list to contain duplicates, > that's his problem. I don't think anyone wants to have duplicates. That's probably the largest issue at hand. End user error or not, does it even really make sense? If not, how can the framework help? Telling everyone to do duplicate checks on all tomany relationships for all entities is a bit of a bummer. FWIW, I had actually tried to address this globally by extending CayenneDataObject and making my class hierarchy extend from that. I ended up having a set of other problems, per my thread on the user list the other day. I think they were related to the direction in which the list was being modified, but I didn't dig into it long enough to verify. The point being more that this could be hazardous and open us up to supporting other harder problems to solve. > 2. If the user wants the framework to ensure no duplicates, no matter > what, he should use a Set. I have yet to map a relationship as a Set. Does the set implementation used preserve iteration order? If so, I'd advocate this being the default rather than List. Then, if someone is worried about performance or random access, he can explicitly choose the List. Otherwise, data integrity is the default. > (and I agree - let's change the docs to make it more clear) Will do. -- Kevin
