Thank you for your reply.

In addition to this, I want to know how to use SqlFieldsQuery instead of
SqlQuery.
I would like you to teach me about that.

My code is here.

--------------------------------------
public class Main {
        private static final String CACHE_NAME1 = "binaryCache1";
        private static final String CACHE_NAME2 = "binaryCache2";

        public static void main(String[] args) {
        IgniteConfiguration cfg = new IgniteConfiguration();

        BinaryConfiguration bc = new BinaryConfiguration();
        bc.setCompactFooter(false);
        cfg.setBinaryConfiguration(bc);

        Ignition.start(cfg);
        Ignite ignite = Ignition.ignite();

        CacheConfiguration<String, BinaryObject> cc1 = new
CacheConfiguration<String,
BinaryObject>(CACHE_NAME1).setStoreKeepBinary(true);
        CacheConfiguration<String, BinaryObject> cc2 = new
CacheConfiguration<String,
BinaryObject>(CACHE_NAME2).setStoreKeepBinary(true);

        List<QueryEntity> entities = new ArrayList<>();
        QueryEntity qe = new QueryEntity(String.class.getName(),
CACHE_NAME1);
        qe.addQueryField("prop1", Double.class.getName(), "prop1");
        entities.add(qe);
        cc1.setQueryEntities(entities);

        List<QueryEntity> entities2 = new ArrayList<>();
        QueryEntity qe2 = new QueryEntity(String.class.getName(),
CACHE_NAME2);
        qe2.addQueryField("prop1", Double.class.getName(), "prop1");
        entities2.add(qe2);
        cc2.setQueryEntities(entities2);

        IgniteCache<String, BinaryObject> cache1 =
ignite.getOrCreateCache(cc1).withKeepBinary();
        IgniteCache<String, BinaryObject> cache2 =
ignite.getOrCreateCache(cc2).withKeepBinary();
        setData(ignite, cache1, cache2);


        QueryCursor<Entry&lt;String, BinaryObject>> results1 = cache1.query(new
SqlQuery(CACHE_NAME1, "select a.* from " + CACHE_NAME1 + " a"));
        for(Entry<String, BinaryObject> result : results1) {
                System.out.println("result :" +result.getKey() + "," +
result.getValue());
        }

        QueryCursor<Entry&lt;String, BinaryObject>> results2 = cache2.query(new
SqlQuery(CACHE_NAME2, "select b.* from " + CACHE_NAME2 + " b"));
        for(Entry<String, BinaryObject> result : results2) {
                System.out.println("result :" +result.getKey() + "," +
result.getValue());
        }

// this line throws exception
        QueryCursor<Entry&lt;String, BinaryObject>> results3 = cache1.query(new
SqlQuery(CACHE_NAME1, "select a.* from " + CACHE_NAME1 + " a," + CACHE_NAME2
+ " b where a.prop1 = b.prop1"));
        for(Entry<String, BinaryObject> result : results3) {
                System.out.println("result :" +result.getKey() + "," +
result.getValue());
        }

        }

    private static void setData(Ignite ignite, IgniteCache<String,
BinaryObject> cache1, IgniteCache<String, BinaryObject> cache2) {
        cache1.put("device1",
ignite.binary().builder(CACHE_NAME1).setField("prop1", 50.0,
Double.class).build());
        cache1.put("device2", ignite.binary().builder(CACHE_NAME1)
.setField("prop1", 10.0, Double.class).build());
        cache2.put("device1", ignite.binary().builder(CACHE_NAME2)
.setField("prop1",  1.0, Double.class).build());
        cache2.put("device2", ignite.binary().builder(CACHE_NAME2)
.setField("prop1", 10.0, Double.class).build());
    }
}



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to