Package com.hazelcast.mapstore
Class GenericMapLoader<K,V>
java.lang.Object
com.hazelcast.mapstore.GenericMapLoader<K,V>
- Type Parameters:
K- type of the keyV- type of the value
- All Implemented Interfaces:
MapLoader<K,,V> MapLoaderLifecycleSupport
- Direct Known Subclasses:
GenericMapStore
public class GenericMapLoader<K,V>
extends Object
implements MapLoader<K,V>, MapLoaderLifecycleSupport
GenericMapLoader is an implementation of
MapLoader built
on top of Hazelcast SQL engine.
It works with any SQL connector supporting SELECT statements.
Usage:
First define data connection, e.g. for JDBC use JdbcDataConnection:
Config config = new Config();
config.addDataConnectionConfig(
new DataConnectionConfig("mysql-ref")
.setType("Jdbc")
.setProperty("jdbcUrl", dbConnectionUrl)
);
Then create a Map with MapLoader using the GenericMapLoader implementation:
MapConfig mapConfig = new MapConfig(mapName);
MapStoreConfig mapStoreConfig = new MapStoreConfig();
mapStoreConfig.setClassName(GenericMapLoader.class.getName());
mapStoreConfig.setProperty(GenericMapLoader.DATA_CONNECTION_REF_PROPERTY, "mysql-ref");
mapConfig.setMapStoreConfig(mapStoreConfig);
instance().getConfig().addMapConfig(mapConfig);
The GenericMapLoader creates a SQL mapping with name "__map-store." + mapName. This mapping is removed when the map is destroyed.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected List<SqlColumnMetadata>static final StringProperty key to define column names in databasestatic final StringProperty key to define data connectionstatic final StringProperty key to define external name of the tablestatic final StringProperty key to define id column name in databasestatic final StringProperty key to control loading of all keys when IMap is first createdstatic final HazelcastPropertyTimeout for initialization of GenericMapLoaderstatic final StringProperty key to decide on getting a single column as the valueprotected SqlServicestatic final StringProperty key to data connection type name -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAwaits successful initialization; if the initialization fails, throws an exception.voiddestroy()voidinit(HazelcastInstance instance, Properties properties, String mapName) loadAll(Collection<K> keys) Size of thekeyscollection is limited byClusterProperty.MAP_LOAD_CHUNK_SIZE
-
Field Details
-
DATA_CONNECTION_REF_PROPERTY
Property key to define data connection- See Also:
-
EXTERNAL_NAME_PROPERTY
Property key to define external name of the table- See Also:
-
ID_COLUMN_PROPERTY
Property key to define id column name in database- See Also:
-
COLUMNS_PROPERTY
Property key to define column names in database- See Also:
-
TYPE_NAME_PROPERTY
Property key to data connection type name- See Also:
-
LOAD_ALL_KEYS_PROPERTY
Property key to control loading of all keys when IMap is first created- See Also:
-
SINGLE_COLUMN_AS_VALUE
Property key to decide on getting a single column as the value- See Also:
-
MAPSTORE_INIT_TIMEOUT
Timeout for initialization of GenericMapLoader -
sqlService
-
columnMetadataList
-
-
Constructor Details
-
GenericMapLoader
public GenericMapLoader()
-
-
Method Details
-
init
- Specified by:
initin interfaceMapLoaderLifecycleSupport
-
destroy
public void destroy()- Specified by:
destroyin interfaceMapLoaderLifecycleSupport
-
load
-
loadAll
Size of thekeyscollection is limited byClusterProperty.MAP_LOAD_CHUNK_SIZE -
loadAllKeys
- Specified by:
loadAllKeysin interfaceMapLoader<K,V>
-
awaitSuccessfulInit
protected void awaitSuccessfulInit()Awaits successful initialization; if the initialization fails, throws an exception.
-