Thank you Evgenii ! BTW, Is there a same thing in c++ ?

On Mon, Apr 13, 2020 at 9:30 AM Evgenii Zhuravlev <e.zhuravlev...@gmail.com>
wrote:

> Hi,
>
> There is no need to create Query Entity if you already have annotations.
> YOu can add CacheConfiguration.setIndexedTypes(PersonKey.class,
> Person.class) and it will be generated automatically based on you
> annotations.
>
> Evgenii
>
> пн, 13 апр. 2020 г. в 09:11, Anthony <harter...@gmail.com>:
>
>> Hello,
>> If I have the following java class:
>>
>> public class Person implements Serializable {
>>     /** */
>>     private static final AtomicLong ID_GEN = new AtomicLong();
>>
>>     /** Person ID (indexed). */
>>     @QuerySqlField(index = true)
>>     public Long id;
>>
>>     /** Organization ID (indexed). */
>>     @QuerySqlField(index = true)
>>     public Long orgId;
>>
>>     /** First name (not-indexed). */
>>     @QuerySqlField
>>     public String firstName;
>>
>>     /** Last name (not indexed). */
>>     @QuerySqlField
>>     public String lastName;
>>
>>     /** Resume text (create LUCENE-based TEXT index for this field). */
>>     @QueryTextField
>>     public String resume;
>>
>>     /** Salary (indexed). */
>>     @QuerySqlField(index = true)
>>     public double salary;
>>
>>     /** Custom cache key to guarantee that person is always collocated
>> with its organization. */
>>     private transient AffinityKey<Long> key;
>>
>>
>>    And I want to create a table, I need to write  the following code in
>> java or put them in the config file. Is it possible to generate them
>> automatically? As Java reflection seems can handle this?
>>
>> CacheConfiguration cacheCfg = new CacheConfiguration("Person");
>> QueryEntity entity = new QueryEntity();
>> entity.setKeyType("java.lang.Long");
>> entity.setValueType("Person");
>> LinkedHashMap<String,String> map = new LinkedHashMap<String, String>();
>> map.put("orgId", "java.lang.Long");
>> map.put("firstName", "java.lang.String");
>> map.put("lastName", "java.lang.String");
>> map.put("Resume", "java.lang.String");
>> map.put("Salary", "java.lang.double");
>> entity.setFields(map);
>> entity.setIndexes(Collections.singletonList(new QueryIndex("orgId")));
>> List<QueryEntity> queryEntities = new ArrayList<>();
>> queryEntities.add(entity);
>> cacheCfg.setQueryEntities(queryEntities);
>> igniteConfiguration.setCacheConfiguration(cacheCfg);
>> Ignite ignite = Ignition.start(igniteConfiguration);
>> IgniteCache cache = ignite.getOrCreateCache("Person");
>>
>>

Reply via email to