Hi ,
I have enabled persistant store as Postgres .
This is my cacheConfiguration ,
public static CacheConfiguration cacheIgniteTableCache() throws Exception {
CacheConfiguration ccfg = new CacheConfiguration();
ccfg.setName("IgniteTableCache");
ccfg.setCacheMode(CacheMode.*PARTITIONED*);
ccfg.setAtomicityMode(CacheAtomicityMode.*ATOMIC*);
ccfg.setCopyOnRead(true);
CacheJdbcPojoStoreFactory cacheStoreFactory = new
CacheJdbcPojoStoreFactory();
cacheStoreFactory.setDataSourceFactory(new Factory<DataSource>() {
*/** {**@inheritDoc**} **/*
@Override public DataSource create() {
return DataSources.*INSTANCE_dsPostgreSQL_Rein*;
};
});
cacheStoreFactory.setDialect(new BasicJdbcDialect());
cacheStoreFactory.setBatchSize(10000);
cacheStoreFactory.setTypes(*jdbcTypeIgniteTable*(ccfg.getName()));
ccfg.setCacheStoreFactory(cacheStoreFactory);
ccfg.setReadThrough(true);
ccfg.setWriteThrough(true);
ArrayList<QueryEntity> qryEntities = new ArrayList<>();
QueryEntity qryEntity = new QueryEntity();
qryEntity.setKeyType("com.gmail.patil.j.harshal.model.IgniteTableKey");
qryEntity.setValueType("com.gmail.patil.j.harshal.model.IgniteTable");
qryEntity.setTableName("ignite_table");
qryEntity.setKeyFieldName("idCol");
HashSet<String> keyFields = new HashSet<>();
keyFields.add("idCol");
qryEntity.setKeyFields(keyFields);
LinkedHashMap<String, String> fields = new LinkedHashMap<>();
fields.put("nameCol", "java.lang.String");
fields.put("idCol", "com.gmail.patil.j.harshal.model.IgniteTableKey");
qryEntity.setFields(fields);
HashMap<String, String> aliases = new HashMap<>();
aliases.put("idCol", "idCol");
aliases.put("nameCol", "name_col");
qryEntity.setAliases(aliases);
qryEntities.add(qryEntity);
ccfg.setQueryEntities(qryEntities);
return ccfg;
}
But I am getting exception ,
* org.postgresql.util.PSQLException: ERROR: column "idcol" does not exist*
how I can solve this ? i can see that preparedStatement don't have quotes
around column .
Current Query = *select idCol from ignite_table *
instead of *select "idCol" from ignite_table*