Following is the java code that loads the cache.
package Load;
import java.sql.Types;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore;
import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory;
import org.apache.ignite.cache.store.jdbc.JdbcType;
import org.apache.ignite.cache.store.jdbc.JdbcTypeField;
import org.apache.ignite.cache.store.jdbc.dialect.OracleDialect;
import org.apache.ignite.configuration.CacheConfiguration;
import ignite.example.IgniteUnixImplementation.OrderDetails;
import ignite.example.IgniteUnixImplementation.OrderKey;
public class OrdersLoad {
private static final class CacheJdbcPojoStoreExampleFactory extends
CacheJdbcPojoStoreFactory<OrderKey, OrderDetails> {
/**
*
*/
private static final long serialVersionUID = 1L;
/** {@inheritDoc} */
@Override public CacheJdbcPojoStore<OrderKey, OrderDetails> create()
{
setDataSourceBean("dataSource");
return super.create();
}
}
private static CacheConfiguration<OrderKey, OrderDetails>
cacheConfiguration() {
CacheConfiguration<OrderKey, OrderDetails> cfg = new
CacheConfiguration<>("OrdersCache");
CacheJdbcPojoStoreExampleFactory storefactory =new
CacheJdbcPojoStoreExampleFactory();
storefactory.setDialect(new OracleDialect());
storefactory.setDataSourceBean("dataSource");
JdbcType jdbcType = new JdbcType();
jdbcType.setCacheName("OrdersCache");
jdbcType.setDatabaseSchema("PDS_CACHE");
jdbcType.setDatabaseTable("ORDERS2");
jdbcType.setKeyType("ignite.example.IgniteUnixImplementation.OrderKey");
jdbcType.setKeyFields(new JdbcTypeField(Types.INTEGER, "ORDERID",
Long.class, "OrderID"),
new JdbcTypeField(Types.INTEGER, "CITYID", Long.class, "CityID")
);
jdbcType.setValueType("ignite.example.IgniteUnixImplementation.OrderDetails");
jdbcType.setValueFields(
new JdbcTypeField(Types.VARCHAR, "PRODUCTNAME", String.class,
"Productname"),
new JdbcTypeField(Types.VARCHAR, "CUSTOMERNAME", String.class,
"CustomerName"),
new JdbcTypeField(Types.VARCHAR, "STORENAME", String.class,
"StoreName")
);
storefactory.setTypes(jdbcType);
cfg.setCacheStoreFactory(storefactory);
cfg.setAtomicityMode(CacheAtomicityMode.ATOMIC);
cfg.setReadThrough(true);
cfg.setWriteThrough(true);
cfg.setSqlSchema("PIE");
return cfg;
}
public static void main(String[] args) throws Exception {
try (Ignite ignite = Ignition.start("Ignite-Client.xml")) {
System.out.println(">>> Loading cache OrderDetails");
IgniteCache<OrderKey, OrderDetails> cache =
ignite.getOrCreateCache(cacheConfiguration());
cache.clear();
ignite.cache("OrdersCache").loadCache(null);
System.out.println(">>> Loaded cache: OrdersCache
Size="+cache.size());
}
}
}
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/