[
https://issues.apache.org/jira/browse/OPENJPA-1595?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Albert Lee updated OPENJPA-1595:
--------------------------------
Affects Version/s: 2.3.0
Fix Version/s: (was: 2.3.0)
> OrderColumn does not maintain index upon inter-list element removal - Phase 2
> -----------------------------------------------------------------------------
>
> Key: OPENJPA-1595
> URL: https://issues.apache.org/jira/browse/OPENJPA-1595
> Project: OpenJPA
> Issue Type: Sub-task
> Components: jdbc
> Affects Versions: 2.0.0-M2, 2.1.1, 2.2.0, 2.3.0
> Reporter: Jeremy Bauer
>
> 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.
> 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.
--
This message was sent by Atlassian JIRA
(v6.1#6144)