|
From: <rbe...@pt...> - 2011-06-25 21:50:49
|
[ http://216.121.112.228/browse/NH-2775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21326#action_21326 ]
rbe...@pt... commented on NH-2775:
--------------------------------------------
Oh my goodness - thanks for that! I ended up porting a damn typo into the repro!
You say that the mapping is "very bad (in general)" - is there something other than the wrong key-column that you would change?
> ISession.Merge with two circularly cascaded child collections
> -------------------------------------------------------------
>
> Key: NH-2775
> URL: http://216.121.112.228/browse/NH-2775
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.0Beta2
> Reporter: rbe...@pt...
> Priority: Major
> Attachments: nhibernate-test-lite.7z
>
>
> When I merge an object that has two circularly cascaded child collections, and I've deleted a single item from both collections, all items are deleted from the database and the merge result is correct. This also means that the merge result is inconsistent with the database.
> In short, the model:
> Product has many Orders, which have many OrderItems.
> OrderItem has many ChildOrderItems.
> The process:
> Product has one Order with two OrderItems, one of which is a child OrderItem (we'll call it childOrderItem) the other of which is the parent OrderItem (orderItem).
> The following will cause the behavior:
> order.OrderItems.Remove(childOrderItem);
> orderItem.ChildOrderItems.Remove(childOrderItem);
> Product product = (Product)session.Merge(detachedProduct);
> Expected:
> order.OrderItems will have one item (orderItem) and orderItem will have no child items. The merge result (product) should be representative of what's in the database.
> Expected SQL:
> UPDATE [Order]
> DELETE [OrderItem]
> Actual:
> order.OrderItems has one item (orderItem) and orderItem has no child items. The merge result (product) is NOT representative of what's in the database.
> Actual SQL:
> UPDATE [Order]
> DELETE [OrderItem]
> DELETE [OrderItem]
> See the attached test. I've just pulled from trunk and tested the project against that version (rev5968).
> I've looked through the merge code, and am not familiar enough, nor do I have the time needed to become familiar right now, so I have no patch (sorry).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|