Igniters!

We already have several cases when underlying database return something
that CacheJdbcPojoStore failed to transform to expected java types, for
example
we have two issues with Oracle Date and Timestamp.

All logic is encoded in  method:
"o.a.i.cache.store.jdbc.CacheAbstractJdbcStore.getColumnValue(ResultSet rs,
int colIdx, Class<?> type)".

This method contains some simple code that convert object received from
database to expected java class.

And we cannot handle vendor specific classes (for example
oracle.sql.TIMESTAMP) because ignite-core module cannot depends on vendor
JDBC drivers.

But user could write its own transformer and put it in class path and set
on CacheJdbcPojoStore configuration.

I'm thinking on introducing base class JdbcTypesTransformer with method
"Object transform(ResultSet rs, int colIdx, Class<?> type)" and move all
current logic there.

And it will be default transformer on JDBC POJO store.

And in case if one will face issue when default transformer failed to
transform value returned from database he will need to write a custom class
and put it into node classpath and set on JDBC POJO store configuration.

Any suggestions are welcome.

-- 
Alexey Kuznetsov

Reply via email to