Class CacheJdbcPojoStore<K,V>
- java.lang.Object
-
- org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore<K,V>
-
- org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore<K,V>
-
- All Implemented Interfaces:
javax.cache.integration.CacheLoader<K,V>
,javax.cache.integration.CacheWriter<K,V>
,CacheStore<K,V>
,LifecycleAware
public class CacheJdbcPojoStore<K,V> extends CacheAbstractJdbcStore<K,V>
Implementation ofCacheStore
backed by JDBC and POJO via reflection. This implementation stores objects in underlying database using java beans mapping description via reflection.Use
CacheJdbcPojoStoreFactory
factory to passCacheJdbcPojoStore
toCacheConfiguration
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore
CacheAbstractJdbcStore.EntryMapping, CacheAbstractJdbcStore.TypeKind
-
-
Field Summary
-
Fields inherited from class org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore
ATTR_CONN_PROP, BUILT_IN_TYPES, cacheMappings, dataSrc, dialect, hasher, ignite, log, transformer
-
-
Constructor Summary
Constructors Constructor Description CacheJdbcPojoStore()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Object
buildBinaryObject(String typeName, JdbcTypeField[] fields, Map<String,Integer> loadColIdxs, ResultSet rs)
Construct binary object from query result.protected <R> R
buildObject(@Nullable String cacheName, String typeName, CacheAbstractJdbcStore.TypeKind typeKind, JdbcTypeField[] flds, Map<String,Integer> loadColIdxs, ResultSet rs)
Construct object from query result.protected @Nullable Object
extractParameter(@Nullable String cacheName, String typeName, CacheAbstractJdbcStore.TypeKind typeKind, String fldName, Object obj)
Get field value from object for use as query parameter.protected void
prepareBuilders(@Nullable String cacheName, Collection<JdbcType> types)
Prepare internal store specific builders for provided types metadata.String
toString()
protected Object
typeIdForObject(Object obj)
Calculate type ID for object.protected Object
typeIdForTypeName(CacheAbstractJdbcStore.TypeKind kind, String typeName)
Calculate type ID for given type name.-
Methods inherited from class org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore
closeConnection, columnIndex, connection, delete, deleteAll, end, fillKeyParameters, fillKeyParameters, fillParameter, fillValueParameters, getBatchSize, getDataSource, getDialect, getHasher, getMaximumPoolSize, getMaximumWriteAttempts, getParallelLoadCacheMinimumThreshold, getTransformer, getTypes, ignite, isSqlEscapeAll, kindForName, kindForName, load, loadAll, loadCache, openConnection, resolveDialect, session, sessionEnd, setBatchSize, setDataSource, setDialect, setHasher, setMaximumPoolSize, setMaximumWriteAttempts, setParallelLoadCacheMinimumThreshold, setSqlEscapeAll, setTransformer, setTypes, start, stop, write, writeAll
-
-
-
-
Method Detail
-
extractParameter
@Nullable protected @Nullable Object extractParameter(@Nullable @Nullable String cacheName, String typeName, CacheAbstractJdbcStore.TypeKind typeKind, String fldName, Object obj) throws javax.cache.CacheException
Get field value from object for use as query parameter.- Specified by:
extractParameter
in classCacheAbstractJdbcStore<K,V>
- Parameters:
cacheName
- Cache name.typeName
- Type name.fldName
- Field name.obj
- Cache object.typeKind
- Type kind.- Returns:
- Field value from object.
- Throws:
javax.cache.CacheException
- in case of error.
-
buildObject
protected <R> R buildObject(@Nullable @Nullable String cacheName, String typeName, CacheAbstractJdbcStore.TypeKind typeKind, JdbcTypeField[] flds, Map<String,Integer> loadColIdxs, ResultSet rs) throws javax.cache.integration.CacheLoaderException
Construct object from query result.- Specified by:
buildObject
in classCacheAbstractJdbcStore<K,V>
- Type Parameters:
R
- Type of result object.- Parameters:
cacheName
- Cache name.typeName
- Type name.typeKind
- Type kind.flds
- Fields descriptors.loadColIdxs
- Select query columns index.rs
- ResultSet.- Returns:
- Constructed object.
- Throws:
javax.cache.integration.CacheLoaderException
- If failed to construct cache object.
-
buildBinaryObject
protected Object buildBinaryObject(String typeName, JdbcTypeField[] fields, Map<String,Integer> loadColIdxs, ResultSet rs) throws javax.cache.integration.CacheLoaderException
Construct binary object from query result.- Parameters:
typeName
- Type name.fields
- Fields descriptors.loadColIdxs
- Select query columns index.rs
- ResultSet.- Returns:
- Constructed binary object.
- Throws:
javax.cache.integration.CacheLoaderException
- If failed to construct binary object.
-
typeIdForObject
protected Object typeIdForObject(Object obj) throws javax.cache.CacheException
Calculate type ID for object.- Specified by:
typeIdForObject
in classCacheAbstractJdbcStore<K,V>
- Parameters:
obj
- Object to calculate type ID for.- Returns:
- Type ID.
- Throws:
javax.cache.CacheException
- If failed to calculate type ID for given object.
-
typeIdForTypeName
protected Object typeIdForTypeName(CacheAbstractJdbcStore.TypeKind kind, String typeName) throws javax.cache.CacheException
Calculate type ID for given type name.- Specified by:
typeIdForTypeName
in classCacheAbstractJdbcStore<K,V>
- Parameters:
kind
- Iftrue
then calculate type ID for POJO otherwise for binary object .typeName
- String description of type name.- Returns:
- Type ID.
- Throws:
javax.cache.CacheException
- If failed to get type ID for given type name.
-
prepareBuilders
protected void prepareBuilders(@Nullable @Nullable String cacheName, Collection<JdbcType> types) throws javax.cache.CacheException
Prepare internal store specific builders for provided types metadata.- Specified by:
prepareBuilders
in classCacheAbstractJdbcStore<K,V>
- Parameters:
cacheName
- Cache name to prepare builders for.types
- Collection of types.- Throws:
javax.cache.CacheException
- If failed to prepare internal builders for types.
-
-