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<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<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<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/