Hi Nikita and thanks a lot! Your input worked. Sorry for the late reply.
Many regards, Andrea On 2020/06/30 10:19:04, Nikita Timofeev <ntimof...@objectstyle.com> wrote: > Hi Andrea, > > This change is mine so let me answer. > There is a new flush action implementation in 4.2 and it uses > EntitySorter differently. > To be more specific it uses dbEntityComparator directly and doesn't > call 'sortDbEntities' method anymore. > > Depending on your use case you could either move your logic to the comparator, > or you could move it to a custom implementation of the DbRowOpSorter > interface. > > As a quick fix you also could use old flush action implementation: > binder.bind(DataDomainFlushActionFactory.class).to(LegacyDataDomainFlushActionFactory.class); > > Hope this helps. > > On Mon, Jun 29, 2020 at 3:16 PM Andrea Biasillo <a...@dataloy.com> wrote: > > > > Hi! > > > > the method sortDbEntities of our EntitySorter is not invoked with 4.2. > > > > We register the EntitySorter in this way: > > > > > > > > public class DataloyOracleModule implements Module { > > > > @Inject AdhocObjectFactory objFac; > > > > @Override > > public void configure(Binder binder) { > > ServerModule.contributeAdapterDetectors(binder).add(new > > DataloyOracleSniffer()); > > ServerModule.useExternalTransactions(binder, true); > > > > > > binder.bind(EntitySorter.class).to(DataloyEntitySorter.class).withoutScope(); > > binder.bind(PkGenerator.class).to(DataloyPkGenerator.class); > > > > binder.bind(BatchTranslatorFactory.class).to(DataloyQueryBuilderFactory.class); > > > > } > > > > } > > > > > > > > > > > > On 2020/06/29 11:17:34, Andrea Biasillo <a...@dataloy.com> wrote: > > > Hi Andrus! > > > > > > I think the problem is related to our EntitySorter implementation. > > > Something has been changed in 4.2 with EntitySorter. > > > > > > Many regards, > > > Andrea > > > > > > On 2020/06/29 09:45:03, Andrea Biasillo <a...@dataloy.com> wrote: > > > > Hi Andrus! > > > > > > > > I will provide the code soon as possible. > > > > > > > > Many thanks > > > > > > > > On 2020/06/29 09:23:27, Andrus Adamchik <and...@objectstyle.org> wrote: > > > > > Could you send a Cayenne query example where this happens? > > > > > > > > > > Andrus > > > > > > > > > > > > > > > > On Jun 29, 2020, at 12:20 PM, Andrea Biasillo <a...@dataloy.com> > > > > > > wrote: > > > > > > > > > > > > Hi Andrus! > > > > > > > > > > > > I think our DataloyOracleAdapter is in use, at startup in the > > > > > > Wildfly log we get this: > > > > > > > > > > > > [org.apache.cayenne.log.JdbcEventLogger] (ServerService Thread Pool > > > > > > -- 87) Detected and installed adapter: > > > > > > com.dataloy.platform.DataloyOracleAdapter > > > > > > > > > > > > Also another thing is the the method setJdbcObject is invoked, but > > > > > > not materializeObject > > > > > > > > > > > > Regards, > > > > > > Andrea > > > > > > > > > > > > On 2020/06/29 08:35:05, Andrus Adamchik <and...@objectstyle.org> > > > > > > wrote: > > > > > >> Here is another random idea - could you verify that your adapter > > > > > >> is in use? > > > > > >> > > > > > >> Andrus > > > > > >> > > > > > >>> On Jun 29, 2020, at 11:27 AM, Andrea Biasillo <a...@dataloy.com> > > > > > >>> wrote: > > > > > >>> > > > > > >>> Hi Andrus and thank you! > > > > > >>> > > > > > >>> I tried to override configureExtendedTypes but still the method > > > > > >>> materializeObject is not inoked. > > > > > >>> > > > > > >>> Regards, > > > > > >>> Andrea > > > > > >>> > > > > > >>> On 2020/06/29 08:19:15, Andrus Adamchik <and...@objectstyle.org> > > > > > >>> wrote: > > > > > >>>> Hi Andrea, > > > > > >>>> > > > > > >>>> "materializeObject" method should still be called of course. > > > > > >>>> When registering custom types within the adapter, I'd usually > > > > > >>>> override "configureExtendedTypes": > > > > > >>>> > > > > > >>>> @Override > > > > > >>>> protected void configureExtendedTypes(ExtendedTypeMap map) { > > > > > >>>> super.configureExtendedTypes(map); > > > > > >>>> map.registerType(new SourceIdType()); > > > > > >>>> } > > > > > >>>> > > > > > >>>> I suspect it might make a difference, considering somewhat > > > > > >>>> complicated type override rules in the adapter. > > > > > >>>> > > > > > >>>> Andrus > > > > > >>>> > > > > > >>>> > > > > > >>>>> On Jun 29, 2020, at 11:04 AM, Andrea Biasillo > > > > > >>>>> <a...@dataloy.com> wrote: > > > > > >>>>> > > > > > >>>>> Hi! > > > > > >>>>> > > > > > >>>>> We are migrating from 4.0.2 to 4.2. We have a class that > > > > > >>>>> implements ExtendedType. > > > > > >>>>> In 4.0.2 the method: > > > > > >>>>> > > > > > >>>>> public SourceId materializeObject(ResultSet rs, int index, int > > > > > >>>>> type) throws Exception > > > > > >>>>> > > > > > >>>>> was invoked, but not in 4.2. > > > > > >>>>> > > > > > >>>>> We register our class in this way: > > > > > >>>>> > > > > > >>>>> public class DataloyOracleAdapter extends OracleAdapter { > > > > > >>>>> > > > > > >>>>> public DataloyOracleAdapter(@Inject RuntimeProperties > > > > > >>>>> runtimeProperties, > > > > > >>>>> > > > > > >>>>> @Inject(Constants.SERVER_DEFAULT_TYPES_LIST) List<ExtendedType> > > > > > >>>>> defaultExtendedTypes, > > > > > >>>>> @Inject(Constants.SERVER_USER_TYPES_LIST) > > > > > >>>>> List<ExtendedType> userExtendedTypes, > > > > > >>>>> > > > > > >>>>> @Inject(Constants.SERVER_TYPE_FACTORIES_LIST) > > > > > >>>>> List<ExtendedTypeFactory> extendedTypeFactories, > > > > > >>>>> @Inject(Constants.SERVER_RESOURCE_LOCATOR) > > > > > >>>>> ResourceLocator resourceLocator, > > > > > >>>>> @Inject ValueObjectTypeRegistry > > > > > >>>>> valueObjectTypeRegistry) { > > > > > >>>>> super(runtimeProperties, defaultExtendedTypes, > > > > > >>>>> userExtendedTypes, extendedTypeFactories, resourceLocator, > > > > > >>>>> valueObjectTypeRegistry); > > > > > >>>>> setSupportsGeneratedKeys(false); > > > > > >>>>> //super.setPkGenerator(new DataloyPkGenerator()); > > > > > >>>>> > > > > > >>>>> setSupportsBatchUpdates(false); > > > > > >>>>> this.extendedTypes.registerType(new SourceIdType()); > > > > > >>>>> } > > > > > >>>>> > > > > > >>>>> > > > > > >>>>> } > > > > > >>>>> > > > > > >>>>> > > > > > >>>>> What is wrong? What should be changed? > > > > > >>>>> > > > > > >>>>> Many regards, > > > > > >>>>> Andrea > > > > > >>>> > > > > > >>>> > > > > > >> > > > > > >> > > > > > > > > > > > > > > > > > > > > > -- > Best regards, > Nikita Timofeev >