Well, right now we are on 3.0.2, but I might play with 3.1 and try it out soon. My first order of business is to try to create a smaller debuggable test case (that I can reproduce -- the graph issues have not been easily reproducible).
On inserts we sometimes get: Can't extract a master key. Missing key (cem_ID), master ID (<ObjectId:Manufacturer, TEMP:0000CFC6F638DD35>) On deletes we sometimes get the cycles found exception. I think part of the problem is using auto-generated keys in MySQL (at least on insert), but I have more exploring to do. Thanks, mrg On Wed, Jul 13, 2011 at 12:19 PM, Andrus Adamchik <[email protected]> wrote: > I am not that well familiar with the AshwoodEntitySorter code, but I guess > we'll need to look at the specific mapping and objects participating in > commit to see what condition triggers it and to take further action. > > @SortWeight may help (unless the cycle is between the objects of the same > type). You will need to install WeightedAshwoodEntitySorter in the DI > container to take advantage of it. > > Andrus > > On Jul 13, 2011, at 4:30 PM, Michael Gentry wrote: > >> Hi Andrus, >> >> We sometimes get this exception: >> >> Sorting objects for [entity] failed. Cycles found. >> >> This is obviously coming out of AshwoodEntitySorter.java. Do you >> think the annotation would help in that circumstance? I'm just now >> starting to investigate this and another graph issue we are having. >> >> Thanks, >> >> mrg >> >> >> On Fri, Mar 25, 2011 at 3:48 AM, Andrus Adamchik <[email protected]> >> wrote: >>> You can already override the sorter via DI (and create a chain yourself, >>> decorated as EntitySorter interface). The sorter has the same scope as >>> Cayenne stack, although I guess internal implementation can be done as >>> dynamic strategy based on contextual parameters. >>> >>> Suggested annotation is a way to attach a per-entity piece of configuration >>> that can be used by the sorter. Due to the nature of the annotations it >>> will also have a stack lifetime scope. >>> >>> Andrus >>> >>> >>> On Mar 25, 2011, at 1:03 AM, Aristedes Maniatis wrote: >>> >>>> How pluggable is the sorter? Could a user specify a different sorter for >>>> one particular commit? Or for a whole context? Or chain the sorters so >>>> that Ashwood is used first and then another sorter is used to adjust the >>>> results under particular circumstances? >>>> >>>> >>>> Ari >>>> >>>> On 25/03/11 5:00 AM, Andrus Adamchik wrote: >>>>> Here is an algorithm analysis task for graph-theory-minded folks. I came >>>>> up with the @SortWeight solution below for a very specific problem when >>>>> commit operation ordering can not be derived from the cross-entity >>>>> relationships in the DataMap. Now I wondering how many other cases raised >>>>> on this list that are not addressed by the default AshwoodEntitySorter >>>>> can be solved by manually overriding entities ordering "weight"? >>>>> >>>>> Andrus >>>>> >>>>> >>>>> On Mar 24, 2011, at 4:50 PM, Andrus Adamchik (JIRA) wrote: >>>>> >>>>>> cayenne-lifecycle: @SortWeight annotation >>>>>> ------------------------------------------ >>>>>> >>>>>> Key: CAY-1553 >>>>>> URL: https://issues.apache.org/jira/browse/CAY-1553 >>>>>> Project: Cayenne >>>>>> Issue Type: Task >>>>>> Components: Lifecycle Extensions >>>>>> Affects Versions: 3.1M2 >>>>>> Reporter: Andrus Adamchik >>>>>> Assignee: Andrus Adamchik >>>>>> >>>>>> >>>>>> Sometimes it is useful to manually override the operation ordering for >>>>>> some entities. E.g. per CAY-1547 we support UuidRelationships, but >>>>>> saving an object with a UuidRelationship to another object does not >>>>>> generate correct ordering. So we may want to override default ordering >>>>>> for entities annotated with @UuidRelationship. E.g.: >>>>>> >>>>>> @SortWeight(1.1) >>>>>> @UuidRelationship("UUID") >>>>>> class My extends _My {} >>>>>> >>>>>> Note that this approach will not be able to address all shortcomings of >>>>>> a generic AshwoodEntitySorter. It is somewhat of a hack. So it will be >>>>>> placed in cayenne-lifecycle and treated as an "extension". >>>>>> >>>>>> -- >>>>>> This message is automatically generated by JIRA. >>>>>> For more information on JIRA, see: http://www.atlassian.com/software/jira >>>>>> >>>>> >>>> >>>> -- >>>> --------------------------> >>>> Aristedes Maniatis >>>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A >>>> >>> >>> >> > >
