We need to be able to filter based on CacheName.nestedClass.types ->
example CacheName.nestedClass.types.contains("firstType)
and filter on CacheName.nestedClass.dynamicFields.thirdKey.greaterThan(0L).
DynamicFields values consist of custom implementations of Long, String,
Date wrappers.

Filtering as needed works with ScanQueries, but we need to be able to order
the results by the same fields.

With specifying QueryEntities using XML I've managed to get the results
mapped into a POJO with a SqlFieldsQuery like: "select * from CacheName",
but I can't specify the nested fields using SQL like "select
nestedClass.type from QueryEntities" or  "select type from QueryEntities".
Without specifying as so we can't filter or order based on those properties.

<bean class="org.apache.ignite.configuration.CacheConfiguration">
    <property name="name" value="CacheName"/>
    <!-- Configure query entities -->
    <property name="queryEntities">
        <list>
            <bean class="org.apache.ignite.cache.QueryEntity">
                <!-- Setting  the type of the key -->
                <property name="keyType" value="java.lang.Long"/>

                <property name="keyFieldName" value="id"/>

                <!-- Setting type of the value -->
                <property name="valueType"
value="com.tanerilyazov.test.CacheName"/>

                <!-- Defining fields that will be either indexed or queryable.
                     Indexed fields are added to the 'indexes' list below.-->
                <property name="fields">
                    <map>
                        <entry key="id" value="java.lang.Long"/>
                        <entry key="nestedClass.type" value="java.util.List"/>
                        <entry key="nestedClass.dynamicFields"
value="java.util.Map"/>
                    </map>
                </property>


On Fri, 4 Jun 2021 at 09:54, Taner Ilyazov <taner.ilya...@gmail.com> wrote:

> Hello everyone, I'm trying to find a solution for the current case:
>
> I have generated classes, which can't be changed.
>
> public static class CacheName {
>     private Long id;
>     private NestedClass nestedClass;
> }
>
> public static class NestedClass {
>     private List<String> types;
>     private Map<String, Object> dynamicFields;
> }
>
>
>

Reply via email to