Jorge Sopena <jsopen..idsa.es> wrote:
> Recently I've found a strange behaviour when I delete a
> CayenneDataObject who belongs to a toMany relationship.
> I've got an object Company which has 1..n objects Path. In the modeler I
> created a toMany relationship with delete rule = Nullify.
>
> Well,
> At any moment, I do Company.getListPaths() and I get Path1 and Path2.
> After I do a SelectQuery to recover Path1.
> Then I delete Path1, and Company.getListPaths() only returns Path2, so
> everything is right.
>
> But, in this other case the behaviuor isn't "correct" or as I expected.
> I do Company.getListPaths() and I get Path1 and Path2.
> After I create Path3 = new Path() and I do Path3.setCompany(Company).
> Now the list Company.getListPaths() is Path1, Path2 and Path3.
> After, I do a SelectQuery to recover Path3.
> Then I delete Path3, but Company.getListPaths() has still Path1, Path2
> and Path3.
>
> In the DB all the information is correct but in Cayenne the information
> is inconsistent.
> Debugging the system I've realised that Cayenne try to find the new
> Path3 in the list but it doesn't find it.
> For the system the Path3 recovered by the SelectQuery isn't equals() the
> Path3 is in the list.
>
> Why happens this? Why are different Objects in case 2 and equals Objects
> in case 1?
After this code,
Path3 = new Path();
Path3.setCompany(Company);
Did you do a
dataContext.commitChanges();
This archive was generated by hypermail 2.0.0 : Tue Oct 19 2004 - 11:45:49 EDT