[
https://issues.apache.org/jira/browse/OPENJPA-1074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840762#action_12840762
]
Jeremy Bauer commented on OPENJPA-1074:
---------------------------------------
I fixed the non-spec compliant behavior described in this JIRA (ie. phase 1 -
Per the latest JPA 2.0 spec, a contiguous index value must be maintained.) but
the second phase of the JIRA has not been addressed:
"The current reordering mechanism does a full delete and reinsert of the
container/collection table values if a reorder is required for inserts. For
deletes, it just removes entries and leaves an empty index value. The first
phase of the fix will be to maintain contiguous ordering using the same
mechanism as inserts (delete/re-insert). The second phase will be to update the
ChangeTracker to record the indexes of the updated list items and to use that
information to provide a more intelligent update strategy in the handlers."
A more spec related side effect of OpenJPA's current order column update
strategy is that the OrderColumn insertable and updatable attributes may not
result in the behavior one may expect since the db operations used to maintain
the list do not exactly map to the db operations indicated by these attributes.
I spent a few days looking into implementing phase 2, but it turned into a non
trivial exercise.
> OrderColumn does not maintain index upon inter-list element removal
> -------------------------------------------------------------------
>
> Key: OPENJPA-1074
> URL: https://issues.apache.org/jira/browse/OPENJPA-1074
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 2.0.0-M2
> Reporter: Jeremy Bauer
> Assignee: Jeremy Bauer
> Priority: Critical
> Fix For: 2.0.0
>
>
> The current order column reordering mechanism does not maintain a contiguous
> index value when an item is deleted from anywhere except the end of a
> collection. Per the latest JPA 2.0 spec, a contiguous index value must be
> maintained.
> The current reordering mechanism does a full delete and reinsert of the
> container/collection table values if a reorder is required for inserts. For
> deletes, it just removes entries and leaves an empty index value. The first
> phase of the fix will be to maintain contiguous ordering using the same
> mechanism as inserts (delete/re-insert). The second phase will be to update
> the ChangeTracker to record the indexes of the updated list items and to use
> that information to provide a more intelligent update strategy in the
> handlers.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.