Re: problem with ExtendedType in Cayenne 4.2
Andrea Biasillo <[email protected]>
| Newsgroups | gmane.comp.java.cayenne.user |
|---|---|
| Message-ID | <pony-eb26d4b97ed24d27e0f8f8afa0aa2a0ef7145fb7-83c7210a684d1661f314db5742caa2879d47d620@user.cayenne.apache.org> |
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 > >>>> > >>>> > >> > >> > >