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/

Reply via email to