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 <[email protected]> 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 <[email protected]> wrote:
> > Hi Andrus!
> >
> > I will provide the code soon as possible.
> >
> > Many thanks
> >
> > On 2020/06/29 09:23:27, Andrus Adamchik <[email protected]> wrote:
> > > Could you send a Cayenne query example where this happens?
> > >
> > > Andrus
> > >
> > >
> > > > On Jun 29, 2020, at 12:20 PM, Andrea Biasillo <[email protected]> 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 <[email protected]> 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 <[email protected]>
> > > >>> 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 <[email protected]>
> > > >>> 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 <[email protected]>
> > > >>>>> 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
> > > >>>>
> > > >>>>
> > > >>
> > > >>
> > >
> > >
> >
>