Hi,

CacheKeyConfiguration can be defined on CacheConfiguration level:
https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/configuration/CacheConfiguration.html#setKeyConfiguration-org.apache.ignite.cache.CacheKeyConfiguration...-

пн, 16 мар. 2020 г. в 20:07, narges saleh <snarges...@gmail.com>:

> Attached. thanks.
>
> On Mon, Mar 16, 2020 at 8:28 PM Evgenii Zhuravlev <
> e.zhuravlev...@gmail.com> wrote:
>
>> Hi, please share the whole config file
>>
>> пн, 16 мар. 2020 г. в 15:38, narges saleh <snarges...@gmail.com>:
>>
>>> Thanks Evgenii for the reply.
>>> How do I do that in XML configuration file if my query entities are
>>> defined solely in the xml file? What does ClassNameOfKey and
>>> fieldNameinThatClass represent? I assume I will have one bean for each
>>> cache.
>>> <bean class="...CacheConfiguration">
>>> <property name="keyConfiguration">
>>>     <list>
>>>         <bean class="org.apache.ignite.cache.CacheKeyConfiguration">
>>>             <property name="typeName" value="ClassNameOfKey"/>
>>>             <property name="affinityKeyFieldName"
>>>
>>> value="fieldNameInThatClass"/>
>>>         </bean>
>>>     </list>
>>> </property>
>>> </bean>
>>> And the bean for the query entity is:have
>>>                       <bean class="org.apache.ignite.cache.QueryEntity">
>>>                                 <property name="keyType"
>>> value="java.lang.Integer"/>
>>>                                 <property name="valueType"
>>> value="PERSON"/>
>>>                                 <property name="tableName"
>>> value="PERSON"/>
>>>                                 <!-- Set fields for value object. -->
>>>                                 <property name="fields">
>>>                                     <map>
>>>                                         <entry key="CompanyId"
>>> value="java.lang.Integer"/>
>>>                                        <entry key="EmployeeId"
>>> value="java.lang.Integer"/>
>>>                                         <entry key="firstName"
>>> value="java.lang.String"/>
>>>                                         <entry key="lastName"
>>> value="java.lang.String"/>
>>>                                     </map>
>>>                                 </property>
>>>                                 <property name="keyFields">
>>>                                     <set>
>>>                                         <!-- These are fields stored in
>>> the key. -->
>>>                                         <value>CompanyId</value>
>>>                                         <value>EmployeeId</value>
>>>                                     </set>
>>>                                 </property>
>>>                             </bean>
>>>
>>>
>>> On Mon, Mar 16, 2020 at 3:22 PM Evgenii Zhuravlev <
>>> e.zhuravlev...@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> You should have one cache per table(query entity) and configure
>>>> separate CacheKeyConfigurations for each of the caches.
>>>>
>>>> Evgenii
>>>>
>>>> пн, 16 мар. 2020 г. в 11:42, narges saleh <snarges...@gmail.com>:
>>>>
>>>>> Hi All,
>>>>>
>>>>> I have a question that might be trivial.
>>>>> If I define my query entity for each in the XML configuration file and
>>>>> define the affinity key via CacheKeyConfiguration (again in the xml file),
>>>>> considering that here affinity key is defined at IgniteConfiguration 
>>>>> level,
>>>>> how do I specify which cache keys (i.e., query entity key fields) will use
>>>>> the affinity key and which ones don't?
>>>>>
>>>>> Say I have these 4 tables
>>>>> Employee(company-id, employee-id)
>>>>> Contractor(company-id, contractor-id)
>>>>> Customer(company-id, customer-id)
>>>>> Company(company-id, address)
>>>>>
>>>>> How do I collocate employee, and contractors with companies but not
>>>>> the customers and companies? Can you provide the CacheKeyConfiguration and
>>>>> keyfields for each query entity?
>>>>>
>>>>> thanks.
>>>>>
>>>>

Reply via email to